[JavaScript] ๊ฐ์ฒด
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/JavaScript
์ƒ์ˆ˜๊ฐ์ฒด const๋กœ ์„ ์–ธ๋œ ๊ฐ์ฒด๋Š” ์ˆ˜์ • ๋  ์ˆ˜ ์žˆ๋‹ค. const user = { name: 'John' }; user.name = 'Pete'; console.log(user.name); // Pete const๋Š” ํ•œ ๋ฒˆ์ด๋ผ๋„ ๊ฐ’์„ ํ• ๋‹นํ•œ ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฑธ ๋ง‰๋Š”๋‹ค. ๋ณ€์ˆ˜ user๋Š” ๊ฐ์ฒด ์ฐธ์กฐ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š”๋ฐ, const๋Š” ์ด ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š”๊ฑธ ๋ง‰๋Š” ๊ฒƒ์ด์ง€, ๊ฐ์ฒด์˜ ๋‚ด์šฉ (ํ”„๋กœํผํ‹ฐ)์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฑด ๋ง‰์ง€์•Š๋Š”๋‹ค. ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ์•ˆ์˜ ํ”„๋กœํผํ‹ฐ ํ‚ค๊ฐ€ ๋Œ€๊ด„ํ˜ธ๋กœ ๋‘˜๋Ÿฌ์‹ธ์—ฌ ์žˆ์„ ๊ฒฝ์šฐ, ์ด๋ฅผ ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ (computed propery) ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. let fruit = prompt('์–ด๋–ค ๊ณผ์ผ์„ ๊ตฌ๋งคํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?', 'appl..
[JavaScript] nullish ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ??
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/JavaScript
nullish ๋ณ‘ํ•ฉ์—ฐ์‚ฐ์ž ?? ์ตœ๊ทผ์— ์ถ”๊ฐ€๋จ. ์ŠคํŽ™์— ์ถ”๊ฐ€๋œ์ง€ ์–ผ๋งˆ์•ˆ๋œ ๋ฌธ๋ฒ•. ๊ตฌ์‹ ๋ธŒ๋ผ์šฐ์ €๋Š” ํด๋ฆฌํ•„์ด ํ•„์š”ํ•˜๋‹ค. nullsh ๋ณ‘ํ•ฉ์—ฐ์‚ฐ์ž(nullish coalescing operator) ??๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์งง์€ ๋ฌธ๋ฒ•์œผ๋กœ ์—ฌ๋Ÿฌ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ๊ทธ ๊ฐ’์ด ํ™•์ •๋˜์–ด ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. a ?? b ์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. a๊ฐ€ null๋„ ์•„๋‹ˆ๊ณ  undefined๋„ ์•„๋‹ˆ๋ฉด a ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ b nullish ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ??์—†์ด x = a ?? b์™€ ๋™์ผํ•œ ๋™์ž‘์„ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. x = (a !== null && a !== undefined) ? a : b; ??์™€ ||์˜ ์ฐจ์ด ||๋Š” ์ฒซ ๋ฒˆ์งธ truthy๊ฐ’์„ ๋ฐ˜ํ™˜. ??๋Š” ์ฒซ ๋ฒˆ์งธ ์ •์˜๋œ(defined) ๊ฐ’์„ ๋ฐ˜ํ™˜. null๊ณผ un..
์›น์ ‘๊ทผ์„ฑ์— ์ฃผ์˜ํ•ด์•ผ ํ•  ๋ถ€๋ถ„
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/Publishing
์›น์ ‘๊ทผ์„ฑ ์ฃผ์˜ํ•  ๋ถ€๋ถ„ 1. label || title form์—์„œ label๊ณผ input์ด ๋“ค์–ด๊ฐˆ ๋•Œ label์— input ์˜ ์•„์ด๋””๋ฅผ ๋„ฃ์–ด ์—ฐ๊ฒฐ์‹œ์ผœ์ค€๋‹ค. ํ•˜์ง€๋งŒ label์ด ์—†์„ ๊ฒฝ์šฐ input์— title=""๋ฅผ ๋„ฃ์–ด ๋ช…์‹œํ•ด์ค€๋‹ค. 2. aria-hidden ํ™”๋ฉด์ƒ ์ˆจ๊ฒจ์ง€๊ฑฐ๋‚˜ ๊ฐ€๋ ค์ง„ ์ฝ˜ํ…์ธ  ARIA๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์Šคํฌ๋ฆฐ๋ฆฌ๋”๊ธฐ๊ฐ€ ์ ‘๊ทผํ•˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„. undefined(default) true ์ ‘๊ทผ์„ฑ API ์ฐจ๋‹จ. (ํ™”๋ฉดํ‘œ์‹œ ์—ฌ๋ถ€์™€ ๋ฌด๊ด€ API ์ฐจ๋‹จ) false ์ ‘๊ทผ์„ฑ API ์‚ฌ์šฉ. (ํ™”๋ฉด์— ํ‘œ์‹œํ•œ ๊ฒฝ์šฐ API ์‚ฌ์šฉ) aria-hidden vs hidden aria-hidden :: ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋‚˜ ์ ‘๊ทผ์„ฑAPI(๋ณด์กฐ๊ธฐ๊ธฐ ์ ‘๊ทผ ๊ฐ€๋Šฅ์„ฑ) ์ฐจ๋‹จ ์ƒํƒœ ๊ฒฐ์ •. hidden :: ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š์•„ ์ ‘๊ทผ ๋ถˆ..
[jQuery] e.target / e.currentTarget / $(this)
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/jQuery
parent child ์ฐจ์ด๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด ๋จผ์ € .parent ํด๋ฆญ! // jQuery $('.parent').on('click', function(e) { console.log('e.target', e.target); console.log('e.currentTarget', e.currentTarget); console.log('$(this)', $(this)); console.log('this', this); }); .child ํด๋ฆญ! // jQuery $('.parent').on('click', function(e) { console.log('e.target', e.target); console.log('e.currentTarget', e.currentTarget); console.log('$(this..
[CSS] flex ์†์„ฑ (flex-basis, flex-grow, flex-shrink)
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/CSS
1. flex-basis : ์•„์ดํ…œ์˜ ๊ธฐ๋ณธํฌ๊ธฐ ๊ธฐ๋ณธ๊ฐ’ auto #container { display: flex; max-width: 800px; margin: auto; border: 3px solid #000; background-color: #fff; } .item { font-size: 40px; flex-basis: auto; } #container { /* ์œ„์™€ ๋™์ผ */ } .item { font-size: 40px; flex-basis: 120px; } 2. flex-grow : ์•„์ดํ…œ์˜ ๋„ˆ๋น„ ๋น„์œจ ๊ธฐ๋ณธ๊ฐ’ 0 flex-grow ๊ฐ’์ด 1์ด๋ฉด 1:1 ๋น„์œจ๋กœ ๋งž์ถฐ์ง€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์—ฌ๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋น„์œจ์ด ๋งž์ถฐ์ง€๋Š” ๊ฒƒ์ด๋‹ค. .item { flex-grow: 1; } ๋„ˆ๋น„๋ฅผ ๋˜‘๊ฐ™์ด ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ์„ ๋•Œ๋Š”, ...
[CSS] flex-basis vs width ์ฐจ์ด์ 
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/CSS
flex-basis๊ฐ€ ํ•ญ์ƒ width์— ์ ์šฉ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. flex-direction: row์ธ ๊ฒฝ์šฐ, flex-basis ๋Š” ๋„ˆ๋น„๋ฅผ ์ œ์–ดํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ flex-direction: column์ธ ๊ฒฝ์šฐ, flex-basis๋Š” ๋†’์ด๋ฅผ ์ œ์–ดํ•œ๋‹ค. ์ฃผ์š”์ฐจ์ด์  flex-basis๋Š” flex item๋งŒ ์ ์šฉ๋œ๋‹ค. flex container ๋Š” flex-basis ๋ฅผ ๋ฌด์‹œํ•˜์ง€๋งŒ width๋‚˜ height๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. flex-basis๋Š” ์ฃผ์ถ•์—์„œ ์ž‘๋™ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด flex-direction: column์€ ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€๋กœ๋กœ ์กฐ์ •ํ•˜๋ ค๋ฉด width ์†์„ฑ์ด ํ•„์š”ํ•˜๋‹ค. ์ ˆ๋Œ€์œ„์น˜์— ์žˆ๋Š” flex ํ•ญ๋ชฉ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. #container { display: flex; flex-direction:..
[HTML] strong / b / em
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/HTML
strong ํ•ด๋‹น ์ฝ˜ํ…์ธ ์˜ ์ค‘์š”์„ฑ์ด๋‚˜ ์‹ฌ๊ฐํ•จ, ๊ธด๊ธ‰ํ•จ ๋“ฑ์„ ๊ฐ•์กฐํ•  ๋•Œ ์‚ฌ์šฉ. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์š”์†Œ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๊ตต์€ ํ…์ŠคํŠธ๋กœ ํ‘œํ˜„. b HTML5์—์„œ ์ œ๋ชฉ(heading)์€ ๋ถ€ํ„ฐ ํƒœ๊ทธ๋กœ, ๊ฐ•์กฐ๋œ ํ…์ŠคํŠธ๋Š” ํƒœ๊ทธ๋กœ, ์ค‘์š”ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ํ…์ŠคํŠธ๋Š” ํƒœ๊ทธ ์‚ฌ์šฉ. ํ•˜์ด๋ผ์ดํŠธ๋œ ํ…์ŠคํŠธ๋Š” ํƒœ๊ทธ๋กœ ํ‘œํ˜„. ๋”ฐ๋ผ์„œ ์œ„์˜ ํƒœ๊ทธ๋“ค์—์„œ ์ ์ ˆํ•œ ํƒœ๊ทธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ๋งŒ ๋งˆ์ง€๋ง‰ ์„ ํƒ์ง€๋กœ ํƒœ๊ทธ ์‚ฌ์šฉ. em ๊ฐ•์กฐ๋œ ํ…์ŠคํŠธ๋ฅผ ํ‘œํ˜„. HTML5์—์„œ๋„ ์—ฌ์ „ํžˆ ์ง€์›, ๋Œ€์‹  CSS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋”์šฑ ๋‹ค์–‘ํ•œ ํšจ๊ณผ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค. strong vs b ์š”์†Œ๋Š” ํ…์ŠคํŠธ ์ž์ฒด์˜ ์ฃผ์˜๋ฅผ ๋Œ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ, ์€ ์š”์†Œ์˜ ์ฝ˜ํ…์ธ  ์ž์ฒด์˜ ์ค‘์š”์„ฑ ๊ฐ•์กฐํ•  ๋•Œ ์‚ฌ์šฉ. strong vs em ์š”์†Œ๋Š” ๊ตฌ์–ด์ฒด ๊ฐ•์กฐ์™€ ๊ฐ™์ด ๋ฌธ์žฅ์˜ ์˜๋ฏธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ ์‚ฌ์šฉ("I love c..
[HTML] abbr acronym
ยท
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปSTUDY/HTML
abbr abbr ๋‹จ์–ด์˜ ์ถ•์•ฝํ˜•(abbreviation)์ด๋‚˜ ๋จธ๋ฆฌ๊ธ€์ž๋กœ๋งŒ ๋œ ๋‹จ์–ด(acronym)๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ. ๋ธŒ๋ผ์šฐ์ €๋‚˜ ๋ฒˆ์—ญ ์‹œ์Šคํ…œ, ๊ฒ€์ƒ‰ ์—”์ง„์— ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณต. ์š”์†Œ ์œ„์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ค๋†“์œผ๋ฉด title ์†์„ฑ์œผ๋กœ ๋ช…์‹œํ•œ ๋‹จ์–ด์˜ ์›ํ˜•์ด ๋‚˜ํƒ€๋‚œ๋‹ค. IOC (๊ตญ์ œ ์˜ฌ๋ฆผํ”ฝ ์œ„์›ํšŒ)๋Š” ์Šค์œ„์Šค ๋กœ์ž”์— ๋ณธ๋ถ€๋ฅผ ๋‘” ๊ตญ์ œ ์Šคํฌ์ธ  ๊ธฐ๊ตฌ์ด๋‹ค. acronym acronym ๋จธ๋ฆฌ๊ธ€์ž๋กœ๋งŒ ๋œ ๋‹จ์–ด(acronym)๋ฅผ ์ •์˜. ๋” ์ด์ƒ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋Œ€์‹  ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์š”์†Œ ์œ„์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ค๋†“์œผ๋ฉด title ์†์„ฑ์œผ๋กœ ๋ช…์‹œํ•œ ๋‹จ์–ด์˜ ์›ํ˜•์ด ๋‚˜ํƒ€๋‚œ๋‹ค. AJAX ๋Š” ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๋™์ ์ธ ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ ๊ธฐ๋ฒ•์˜ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.