๐Ÿ“ŒDevelopment/JavaScript 19

[JS] DOM & EVENT #6 ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง, ์ด๋ฒคํŠธ ์œ„์ž„

1. ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง ๋ชจ๋“  ์š”์†Œ์— ํด๋ฆญ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ ์ฝ˜์†”๋กœ๊ทธ๋ฅผ ์ฐ๋„๋ก ๋งŒ๋“ค์–ด๋ณด์ž. ์•„๋ž˜๋Š” html์ฝ”๋“œ์ด๋‹ค. ์ด๋Ÿฐ์‹์œผ๋กœ ์งฐ๊ตฌ๋‚˜๋งŒ ์ƒ๊ฐํ•˜๊ณ  ๋”ฐ๋ผ์˜ค๋ฉด ๋œ๋‹ค. ์ฒจ๋ถ€๋œ css style sheet์˜ ๋‚ด์šฉ์€ ์ƒ๋žตํ•˜๊ฒ ๋‹ค. โœ๏ธ์ž…๋ ฅ Red โœจ๊ฒฐ๊ณผ li๋ฅผ ํด๋ฆญํ•ด๋ณด๋ฉด li, ul, div, body์ˆœ์œผ๋กœ ์ฐํžŒ๋‹ค. ์ดˆ๋ก์ƒ‰ ๋„ค๋ชจ๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ž๊ธฐ ์ž์‹ ์ธ div์™€ ๋ถ€๋ชจ์š”์†Œ์ธ body ๋ชจ๋‘ console์— ๋‚จ๊ฒจ์ง„๋‹ค. โœ…์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ์ž์‹์š”์†Œ์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๋Š” ๋ถ€๋ชจ์™€ ๊ทธ ๋ถ€๋ชจ๋ฅผ ํ†ตํ•ด ์ „ํŒŒ๋œ๋‹ค. ํ•˜์œ„์š”์†Œ์—์„œ ์ƒ์œ„์š”์†Œ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š”๊ฒƒ. ๋” ์ด์ƒ ๋ถ€๋ชจ์š”์†Œ๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ์ด ๊ณผ์ •์€ ๋ฐ˜๋ณต๋œ๋‹ค. li์—์„œ click ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ถ€๋ชจ์š”์†Œ๋กœ ์ „ํŒŒ๋œ๋‹ค. ์ด๋ฒคํŠธ๊ฐ€ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ชจ์Šต์ด ๊ฑฐํ’ˆ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค ํ•ด์„œ ์ด๊ฒƒ์„ ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง(event ..

[JS] DOM & EVENT #5 ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(Event Handler)

1. Event Handler ํ• ๋‹นํ•˜๊ธฐ ํด๋ฆญ DOM Events HTML DOM Event Object W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com : Event์˜ ์†์„ฑ๋“ค์ด ์žˆ๋‹ค. ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๋ฉด ์ข‹๋‹ค. ํด๋ฆญ ํด๋ฆญ2 ํด๋ฆญ3 ํด๋ฆญ4 ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ํด๋ฆญ, ํด๋ฆญ2, ํด๋ฆญ3, ํด๋ฆญ4๋ฅผ ๋ณด๋ฉด ๊ฐ์ž ๋‹ค๋ฅธ ๋ฐฉ์‹์˜ button event ์ฝ”๋“œ๊ฐ€ ์žˆ..

[JS] DOM์ด๋ž€? #4 CSS style, class ์ œ์–ด

1. Style์ œ์–ด HTML BOX Red Green blue ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” background-color ๋ผ๊ณ  ์ ์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ๋Š” backroundColor๋ผ๊ณ  ๋ช…์‹œํ•œ๋‹ค. ๋งŒ์ผ, ์ต์ˆ™ํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด ๋Œ€๊ด„ํ˜ธ๋ฅผ ์จ๋„ ๋œ๋‹ค. ex) box.style["margin-left"] = "30px"; ์—ฌ๋Ÿฌ ์†์„ฑ ๋™์‹œ์— ์ ์–ด์ฃผ๋Š” ๋‹จ์ถ•์†์„ฑ๋„ ๋ฌธ์ž์—ด๋กœ ์ ์–ด์ฃผ๋ฉด๋œ๋‹ค. ex) box.style.border = "10px solid #000" 2. Class์ œ์–ด //์ฝ˜์†”์ฐฝ box.className; ' ' box.className = 'bg-red';

[JS] DOM์ด๋ž€? #3 ๋…ธ๋“œ ์ƒ์„ฑ,์ถ”๊ฐ€,๋ณต์ œ,์‚ญ์ œ

*DOM: ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(The Document Object Model) 1. ์ƒ์„ฑํ•˜๊ณ  ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ• ul์ด ์žˆ๋‹ค. document.createElement('li')๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. document.createTextNode('pink')๋„ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๊ทธ๋‹ค์Œ li์— appendChild(pinkText)์ด์šฉํ•ด์„œ ๋ฐฉ๊ธˆ ๋งŒ๋“  text node๋ฅผ ๋„ฃ์–ด์ค€๋‹ค. ๊ทธ๋‹ค์Œ์— ul.appendChild(li)๋„ฃ์–ด์ฃผ๋ฉด ๋งˆ๋ฌด๋ฆฌ๋œ๋‹ค. * appendChild(): ์ง€์ •ํ•œ ๋ถ€๋ชจ๋…ธ๋“œ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์ž์‹์œผ๋กœ ์ถ”๊ฐ€๋œ๋‹ค. * insertBefore() : ์ง€์ •ํ•œ ๋ถ€๋ชจ๋…ธ๋“œ์˜ ๊ทธ ์ด์ „์œผ๋กœ ์ถ”๊ฐ€๋œ๋‹ค. //Console const newLi3 = document.createElement('li); undefined cost textNod..

[JS] DOM์ด๋ž€? #2 ๋ถ€๋ชจ, ์ž์‹, ํ˜•์ œ Node

*DOM: ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(The Document Object Model) query์™€ element์˜ ์ฐจ์ด์ : pList1 = NodeList pList2 = HTML์ปฌ๋ ‰์…˜ NodeList(4) HTMLCollection(4) : ๋ชจ๋‘ 4๊ฐœ๊ฐ€ ๋‚˜์˜ด ์ด์ œํƒœ๊ทธ๋ฅผ ๋„ฃ์–ด๋ณด์ž. :๋‹ค์‹œ ์‹คํ–‰์‹œ์ผœ๋ณด๋‹ˆ NodeList๋Š” 4๊ฐœ, HTML Collection์€ 5๊ฐœ๊ฐ€ ๋ผ์žˆ๋‹ค. :์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜์ง€๋งŒ HTMLCollection์€ node์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋ผ์žˆ๋‹ค.๋ฐ˜๋ฉด NodeList๋Š” ํ•œ ๋ฒˆ ์‚ฌ์šฉํ–ˆ๋˜ ๊ฐ’์„ ๊ณ„์† ์‚ฌ์šฉํ•œ๋‹ค. ๋ถ€๋ชจ, ์ž์‹, ํ˜•์ œ Node -red์— ์ ‘๊ทผํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. //Console const red = document.getElementById( 'red'); < undefined 1...

[JS] DOM์ด๋ž€? #1 Node์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•

*DOM: ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(The Document Object Model) ์›น๋ธŒ๋ผ์šฐ์ €๋Š” HTML ๋ฌธ์„œ๋ฅผ ํ•ด์„ํ•˜๊ณ , ํ™”๋ฉด์„ ํ†ตํ•ด ํ•ด์„๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ํ•ด์„ํ•œ HTML ์ฝ”๋“œ๋ฅผ ํ™”๋ฉด์„ ํ†ตํ•ด ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •์„ '๋ Œ๋”๋ง'์ด๋ผ ํ•œ๋‹ค. - DOM์€ html ๋ฌธ์„œ์˜ ๊ฐ ์š”์†Œ๋“ค์„ ํŠธ๋ฆฌํ˜•ํƒœ๋กœ ๊ตฌ์กฐํ™”ํ•ด ํ‘œํ˜„ํ•˜๋Š” ๋ฌธ์„œ(๋ฐ์ดํ„ฐ)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์„ ์ด์šฉํ•ด์„œ ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ DOM์ด๋ผ ํ•˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €๋Š” DOM์„ ํ†ตํ•ด ํ™”๋ฉด์— ์›น ์ฝ˜ํ…์ธ ๋“ค์„ ๋ Œ๋”๋งํ•œ๋‹ค. DOM๋ชฉ์  Q. Html ์ฝ”๋“œ์— ์จ์ ธ ์žˆ๋Š” ๋ฐ๋กœ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๊ฒŒ ๋ธŒ๋ผ์šฐ์ € ์—ญํ• ์ธ๋ฐ ๊ตณ์ด ์ค‘๊ฐ„์— DOM์ด๋ผ๊ณ  ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ด์œ ? A. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ์ด ๋ฌธ์„œ์— ๋Œ€ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. DO..

[JS] Arrow Function์€ ๋ฌด์—‡์ธ๊ฐ€? ํ•จ์ˆ˜์˜ ์„ ์–ธ๊ณผ ํ‘œํ˜„

* Function - ๊ธฐ๋ณธ์ ์ธ ๋นŒ๋”ฉ๋ธ”๋Ÿญ - subprogram์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ ์—ฌ๋Ÿฌ๋ฒˆ ์žฌ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. - ํ•œ๊ฐ€์ง€์˜ task(์ž‘์—…)๋‚˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์“ฐ์ธ๋‹ค. 1. Function declaration (ํ•จ์ˆ˜ ์„ ์–ธ) - function ํ‚ค์›Œ๋“œ ์ด์šฉ, ์ด๋ฆ„(name)์ง€์ •, ( )์— parameter(์ธ์ž) ๋‚˜์—ด, { } body ๋กœ์ง ์ž‘์„ฑ, returnํ•ด์ฃผ๋ฉด ๋œ๋‹ค. - ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€์˜ ์ผ๋งŒ ํ•œ๋‹ค. - ํ•จ์ˆ˜์ด๋ฆ„ ์ž‘์„ฑ์‹œ, ๋™์‚ฌํ˜•ํƒœ๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผํ•œ๋‹ค. ex) createCardAndPoint ๋ผ๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์žˆ๋‹ค๊ณ  ๋ณด์ž. ์šฐ๋ฆฐ ์ด๊ฒƒ์„ creteCard ํ˜น์€ createPoint๋กœ ๋‚˜๋ˆ ์•ผ ํ• ์ง€ ๋ง์ง€์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•ด์•ผํ•œ๋‹ค. - ํ•จ์ˆ˜๋Š” object์ด๋‹ค. ex) function printHello(..

[JS] operator(์—ฐ์‚ฐ์ž), if, switch, for loops ์ฝ”๋“œ

1. String(๋ฌธ์ž์—ด) concatenation (์—ฐ์†) console.log('my'+'cat'); : + ๊ธฐํ˜ธ๋ฅผ ์ด์šฉํ•œ ๋ฌธ์ž์—ด์„ ํ•ฉํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฌธ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. console.log('1'+2); : ๋ฌธ์ž์—ด์— ์ˆซ์ž ๋”ํ•˜๋ฉด ์ˆซ์ž๊ฐ€ ๋ฌธ์ž์—ด์ด ๋ผ ํ•ฉ์ณ์ง console.log(`string literals: 1 + 2 = ${1 + 2}`); : ๋นฝํ‹ฑ ๊ธฐํ˜ธ(``) ํ™œ์šฉํ•ด์„œ string literals๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ $์ด์šฉํ•˜๋ฉด ๋ณ€์ˆ˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ string์œผ๋กœ ํฌํ•จํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค๊ฒŒ๋œ๋‹ค. ๐Ÿ“string literals์˜ ์žฅ์ : - ์ค„๋ฐ”๊ฟˆ ํ•˜๊ฑฐ๋‚˜ ํŠน์ˆ˜๊ธฐํ˜ธ์ธ ์‹ฑ๊ธ€์ฝ”ํŠธ('')๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋จ ex) '''' 1 + 2 = ${1 + 2}`); + console.log('ellie's boo..

[JS] ๋ฐ์ดํ„ฐํƒ€์ž…, data types, ๋ณ€์ˆ˜ ์„ ์–ธ let vs var, hoisting

Variable, rw (read / write) : ๋ณ€์ˆ˜ : ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ’ : let์„ ๋งŽ์ด ์”€ let name = 'ellie'; - ํ•ด์„: let์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ ์ด์šฉํ•ด์„œ name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ(declaration)ํ•˜๊ณ  ellie๋ผ๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค. name = 'hello'; - ํ•ด์„: ๋‹ค์‹œ name ์ด๋ผ๋Š” ๋ณ€์ˆ˜์— hello ๋ผ๋Š” ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด console์—๋Š” ellie์™€ hello๊ฐ€ ๋‚˜๋ž€ํžˆ ์ถœ๋ ฅ๋œ๋‹ค. ๋ณ€์ˆ˜๊ฐ€ ์“ฐ์ด๋Š” ์›๋ฆฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์“ฐ๊ฒŒ ๋˜๋ฉด, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋งˆ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋˜์–ด์ง„๋‹ค. ์ด ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ……ํ…… ๋น„์–ด์žˆ๋Š” ๋ฐ•์Šค๋“ค์ธ๋ฐ let์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ฒŒ๋˜๋ฉด ํ•œ๊ฐ€์ง€์˜ ๋ฐ•์Šค๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ํฌ์ธํ„ฐ๊ฐ€ ์ƒ๊น€. name์ด๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š”..

[JS] ์ฝ˜์†”์— ์ถœ๋ ฅ, script async ์™€ defer์˜ ์ฐจ์ด์ 

- VSC ์‹คํ–‰ - console.log('Hello World!'); ์ž…๋ ฅ - ํŒŒ์ผ์ด๋ฆ„: " main.js " - ํ•ด๋‹น ํด๋” ์šฐํด๋ฆญ -> Git Bash here -> node main.js ์น˜๋ฉด Hello World! ๋ผ๊ณ  ๋œฌ๋‹ค. * IDE(Integrated Development Environment) : ํšจ์œจ์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ ์†Œํ”„ํŠธ์›จ์–ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. : ํ•œ๋งˆ๋””๋กœ ๊ฐœ๋ฐœ๋„๊ตฌ(ex. VSC) * console API : ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜. [ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ณต์‹์‚ฌ์ดํŠธ ] : developer.mozilla.org (์ถ”์ฒœ) console.log() - console.log() ๋ฉ”์„œ๋“œ๋Š” "์›น ์ฝ˜์†”์— ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค." ๋ฅผ ์˜๋ฏธ. - ์ฝ˜์†” ์‹คํ–‰ ์ฐฝ : ct..