๐ŸŒ• Front/๐ŸŒฑ Vanilla JS ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 20๊ฑด

1. JavaScript Runtime ๊ตฌ์„ฑ ์š”์†Œ๋ธŒ๋ผ์šฐ์ € ๋‚ด์˜ JavaScript *๋Ÿฐํƒ€์ž„์€ ํฌ๊ฒŒ JavaScript ์—”์ง„๊ณผ ์›น API๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์— ํ…Œ์Šคํฌ ํ์™€ ์ด๋ฒคํŠธ ๋ฃจํ”„๋ผ๋Š” ๊ฐœ๋… ๋˜ํ•œ ์กด์žฌํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ผ ๋ถˆ๋ฆฌ๋Š” JavaScript๋„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. *๋Ÿฐํƒ€์ž„: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ๊ตฌ๋™๋˜๋Š” ํ™˜๊ฒฝ 2. JavaScript ์—”์ง„JavaScript ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ , ํ•ด์„, ์‹คํ–‰์„ ๋‹ด๋‹นํ•˜๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ์ด๋‹ค. ์“ฐ๋ ˆ๋“œ ํ•˜๋‚˜๋กœ๋งŒ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ ์˜์—ญ๋„ ๋‹จ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋กœ ์ธํ•ด ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰์ด ๋๋‚˜๊ธฐ ์ „์—๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์—†๋Š” "Run to Completion" ํŠน์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.JavaScr..

๋Œ€์ „์ œthis๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๊ฒฐ์ •๋œ๋‹ค.ํ•จ์ˆ˜๋ฅผ ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ์—๋Š” this๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š๋Š”๋‹ค.this์—๋Š” ํ˜ธ์ถœํ•œ ์ฃผ์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด๋‹ค. ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ•  ๋‹น์‹œ์— this๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ this๋Š” ์ „์—ญ ๊ฐ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณธ๋‹ค.function func1() { console.log(this);}obj ={ func1:func1,}func1(); // Windowobj.func1() // obj ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋กœ์„œ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ์—๋งŒ ๋ฉ”์„œ๋“œ๋กœ ๋™์ž‘ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•จ์ˆ˜๋กœ ๋™์ž‘ํ•œ๋‹ค.this ๋ฐ”์ธ๋”ฉ์— ๊ด€ํ•ด์„œ๋Š” ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‹น์‹œ์˜ ์ฃผ๋ณ€ ํ™˜๊ฒฝ(๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์ธ์ง€, ํ•จ์ˆ˜ ๋‚ด๋ถ€์ธ์ง€)๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.์˜ค์ง ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์ƒ, ์•ž์— ์  ๋˜๋Š” ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๊ฐ€ ๊ด€๊ฑด..

AJAX๋ž€? JavaScript๋ฅผ ์ด์šฉํ•œ ๋น„๋™๊ธฐ ํ†ต์‹  ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์— XML, JSON ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ์ˆ ์ด๋‹ค. AJAX๋Š” ๊ธฐ์ˆ  ์ž์ฒด๋ฅผ ๋œปํ•˜๊ธฐ ๋ณด๋‹จ, HTML, XHTML, CSS, JavaScript, DOM, XML, XSLT, XMLHttpRequest ์˜ค๋ธŒ์ ํŠธ๋“ค์ด ์กฐํ•ฉํ•œ ๊ธฐ์ˆ ์˜ ์ด์นญ์„ ์ผ์ปซ๋Š”๋‹ค. XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด์„œ, ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋งŒ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. AJAX(Asynchronous JavaScript and XML)์˜ X๋Š” XML์„ ๋œปํ•˜์ง€๋งŒ, JSON์ด ๋” ๊ฐ€๋ณ๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์˜ค๋ธŒ์ ํŠธ๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜๋œ๋‹ค๋Š” ์  ๋•Œ๋ฌธ์— XML ๋ณด๋‹ค ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. AJAX๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ํ™”๋ฉด์—์„œ ๋ฌด์–ธ๊ฐ€ ๋ถ€๋ฅด๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ, ํŽ˜..

ํ˜ธ์ด์ŠคํŒ…(hoisting) ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์„ ์–ธ ์ „์— ๋ฏธ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. var๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ํ˜ธ์ด์ŠคํŒ… ์‹œ undefined๋กœ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ๋ฐ˜๋ฉด let๊ณผ const๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ํ˜ธ์ด์ŠคํŒ… ์‹œ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ var๋กœ ์„ ์–ธํ•  ์‹œ ์ดˆ๊ธฐํ™” ๊ฐ’, undefined๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅด๊ฒŒ, const์™€ let์€ ์ดˆ๊ธฐํ™” ๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. Temporal Dead Zone ๋ณ€์ˆ˜๊ฐ€ ํ˜„์žฌ ์Šค์ฝ”ํ”„ ๋‚ด์—์„œ ์„ ์–ธ๋์ง€๋งŒ, ์•„์ง ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค. let ๋˜๋Š” const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ๊ฐœ๋…. TDZ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์ง€์ ๋ถ€ํ„ฐ ์ดˆ๊ธฐํ™”๋˜๊ธฐ ์ „๊นŒ์ง€, ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ํ•œ๋‹ค. TDZ์— ๋น ์ง„ ์˜ˆ์‹œ..

123.123.toFixed(2) // 123.12 "hello".charAt(4) // 'o' ๋ž˜ํผ ๊ฐ์ฒด๋Š”์›์‹œ๊ฐ’(๋ฌธ์ž์—ด, ์ˆซ์ž ๋“ฑ)์„ ๋งˆ์น˜ ๊ฐ์ฒด์ฒ˜๋Ÿผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ, ์›์‹œ๊ฐ’์—์„œ๋„ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ž˜ํผ ๊ฐ์ฒด ๋ณ€ํ™˜ ๊ณผ์ • 1. ์›์‹œํƒ€์ž…์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. 2. ์ด ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. 3. ๋ฉ”์„œ๋“œ ์ฒ˜๋ฆฌ ํ›„ ์ด ๊ฐ์ฒด๋Š” ์†Œ๋ฉธ๋œ๋‹ค. 4. ์›๋ž˜์˜ ์›์‹œํƒ€์ž…๋งŒ ๋‚จ๋Š”๋‹ค. ๋ž˜ํผ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๋ฌธ์ž์—ด์ด๋‚˜ ์ˆซ์ž์™€ ๊ฐ™์€ ์›์‹œ๊ฐ’์„ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๋Š” ์ž‘์—…์ด ๋งŽ์€๋ฐ, ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—…์„ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด๋Š” ๋ฌด๊ฒ๊ณ , ์›์‹œ๊ฐ’์€ ๊ฐ€๋Šฅํ•œ ํ•œ ๋น ๋ฅด๊ณ  ๊ฐ€๋ฒผ์›Œ์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์›์‹œ ํƒ€์ž…์„ ์œ ์ง€ํ•˜๋˜, ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งŒ ์ž ๊น ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ๋‹ค์‹œ ์‚ญ์ œํ•œ๋‹ค.

์œ„์™€ ๊ฐ™์€ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋“ค์˜ ๋‚ด๋ถ€์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์‹ถ์–ด, ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ์—์„œ ํ™•์ธํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ native code๋ผ๊ณ ๋งŒ ๋‚˜์˜ค๊ณ  ๋” ์ด์ƒ์˜ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์—†์—ˆ๋‹ค. You don't know Js๋ผ๋Š” ์ฑ…์—์„œ ์–ธ๊ธ‰ํ•œ ๋‚ด์šฉ์ธ์ง€, ๊ตฌ๊ธ€๋ง ๊ฒ€์ƒ‰์„ ํ•˜๋ฉด ์ฃ„๋‹ค ์ฑ… ๋‚ด์šฉ์„ ์š”์•ฝํ•œ ๋ธ”๋กœ๊ทธ ๋‚ด์šฉ๋ฐ–์— ์—†์—ˆ๊ณ , ๋น ๋ฅด๊ฒŒ ๋ฐ‘๊ทธ๋ฆผ๋งŒ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์ง€์—ฝ์ ์ธ ์ง€์‹๋งŒ ๋‚˜์—ด๋˜์–ด ์žˆ์–ด, ๋‹ค๋ฅธ ์†Œ์Šค๋ฅผ ์ฐพ์•˜๋‹ค. ์œ„์˜ ๋‚ด์šฉ์„ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•˜์ž. native code๋Š” Window, Document, Function์™€ ๊ฐ™์€ ๋‚ด์žฅ๊ฐ์ฒด๋“ค์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ์ง€ ์•Š๊ณ , C์™€ C++๊ฐ™์€ ์ปดํŒŒ์ผ๋Ÿฌ ์–ธ์–ด๋กœ ์ฝ”๋”ฉ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์˜ ์ฝ”๋“œ๋“ค์„ ๋ณผ ์ˆ˜ ์—†๋‹ค. ๋•Œ๋ฌธ์— binary code๋ฅผ ๋ณด์—ฌ์ค˜๋ดค์ž, ์ฝ์„ ์ˆ˜๋„ ์—†๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์—†๊ธฐ๋•Œ๋ฌธ์— [native co..

์˜ต์…˜๋“ค์„ forEach๋กœ ๋ฐ˜๋ณต์‹œ์ผœ์„œ ์ด๋ฒคํŠธ๋ฅผ ์ฃผ๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ event.target์œผ๋กœ ์˜ต์…˜๋“ค์˜ ๋ถ€๋ชจ์š”์†Œ ul์„ ์ฐธ์กฐํ•ด ์ด๋ฒคํŠธ๋ฅผ ์œ„์ž„์‹œํ‚ค๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์“ฐ์ง€์•Š๊ณ ๋„ ์˜ต์…˜๋“ค์— ์ด๋ฒคํŠธ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์˜ต์…˜์ด ๋งŽ์•„์ง€๋ฉด ๋ฐ˜๋ณต๋ฌธ์ด ๋Œ์•„๊ฐˆ๋•Œ ์„ฑ๋Šฅ์ด์Šˆ๋„ ์žˆ์œผ๋‹ˆ ํƒ์›”ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. li ๋ถ€๋ชจ ํƒœ๊ทธ์ธ ulํƒœ๊ทธ์— ํ•œ ๋ฒˆ๋ฐ˜ ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆํ•˜๋ฉด ๋œ๋‹ค. ๋ถ€๋ชจulํƒœ๊ทธ์— ํ•œ๋ฒˆ๋งŒ ๋“ฑ๋กํ•ด๋†“๊ณ  ์ž์‹ liํด๋ฆญ์‹œ(๋ฒ„๋ธ”๋ง์€ ๊ธฐ๋ณธ๊ฐ’) ๋ฒ„๋ธ”๋ง์„ ํ™œ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ๋กœ li ์š”์†Œ๋“ค ์ „์ฒด๋ฅผ ๋‹ค๋ฃฐ์ˆ˜์žˆ๋‹ค. ๋‹จ ๋ชจ๋“  ์ด๋ฒคํŠธ๊ฐ€ ๋ฒ„๋ธ”๋ง์ด ๋ฐœ์ƒํ•˜๋Š”๊ฑด์•„๋‹ˆ๋‹ค. click์€ ๋ฒ„๋ธ”๋ง์ด ๊ธฐ๋ณธ์œผ๋กœ ๋ฐœ์ƒํ•œ๋‹ค. const billboard = document.querySelector('billboard'); const ul = document.querySelector('ul..

DOM ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ•˜์ง€๋งˆ OM์€ Object Model, ๊ฐ์ฒด ์ง€ํ–ฅ ๋ชจ๋ธ์„ ๋œปํ•œ๋‹ค. ๋ญ”๊ฐ€๋ฅผ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค. ๋‚˜์•„๊ฐ€ Documnet๊ฐ€ ์ถ”๊ฐ€๋œ "D"OM์€ ์›น ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์„ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜๋Š” ํ˜•์‹์„ ๋งํ•œ๋‹ค. Brower๊ฐ€ ์ถ”๊ฐ€๋œ "B"OM์€ ์›น ๋ธŒ๋ผ์šฐ์ € ์ž์ฒด๋ฅผ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜๋Š” ํ˜•์‹์„ ๋งํ•œ๋‹ค. ์ด ๋‘˜์˜ ๊ฐ์ฒด๋“ค๋กœ๋ถ€ํ„ฐ ์ œ๊ณต๋˜๋Š” DOM API, BOM API๋ฅผ ํ†ตํ•ด JavaScript๊ฐ€ ์›น ํŽ˜์ด์ง€/๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‰ฝ๊ฒŒ ์ œ์–ด ๋ฐ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. DOM HTML๋ฌธ์„œ์˜ ๊ตฌ์กฐ์™€ ๋‚ด์šฉ์„ ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜์‹œ์ผœ ์›น ํŽ˜์ด์ง€์— ๊ฐ์ฒด์ง€ํ–ฅ์  ์ ‘๊ทผ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ–ˆ๋‹ค. ๋‚  ๊ฒƒ ๊ทธ๋Œ€๋กœ์˜ Document๋ฅผ Object๋กœ ๋งŒ๋“ค๋ฉด(=DOM), ๊ตฌ์กฐ, ๋‚ด์šฉ, ์Šคํƒ€์ผ์˜ ์š”์†Œ๋“ค์„ ๊ตฌ์กฐ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. DOM์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด..

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ OOP ์–ธ์–ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ถ„๋ฅ˜ ์œ„์ฃผ ํด๋ž˜์Šค ๋ฐฉ์‹์˜ ์–ธ์–ด์ธ JAVA์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ด€์ ๊ณผ ์™„์ „ํžˆ ๋‹ค๋ฅด๋‹ค. ํŠนํžˆ ๋ฌธ๋งฅ(context)์„ ๋งค์šฐ ๊ฐ•์กฐํ•˜๋Š” ์ฒ ํ•™์  ๊ทผ๊ฑฐ์—์„œ ๋งŒ๋“ค์–ด์ ธ ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„์— ์˜ํ•œ ํ˜ธ์ด์ŠคํŒ…๊ณผ ์‹คํ–‰ ๋ฌธ๋งฅ์— ์˜ํ•œ ๋ณต์žกํ•œ this๊ฐ€ ํ•„์—ฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜๋ฐ–์— ์—†์—ˆ๋‹ค. ๋น„ํŠธ๊ฒ์Šˆํƒ€์ธ์˜ ๋‘ ๊ฐ€์ง€ ์ด๋ก  1. ์˜๋ฏธ์‚ฌ์šฉ์ด๋ก : ๋‹จ์–ด์˜ ์˜๋ฏธ๋Š” ‘์ƒํ™ฉ๊ณผ ๋งฅ๋ฝ์— ์˜ํ•ด์„œ ๊ฒฐ์ •๋œ๋‹ค'. ๋‹จ์–ด์˜ ‘์ง„์ •ํ•œ ๋ณธ๋ž˜์˜ ์˜๋ฏธ'๋ž€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. 2. ๊ฐ€์กฑ์œ ์‚ฌ์„ฑ์ด๋ก : ํ”„๋กœํ† ํƒ€์ž… ์–ธ์–ด์—์„œ๋Š” ์ •์˜๋กœ ๋ถ€ํ„ฐ ๋ถ„๋ฅ˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ€์žฅ ์ข‹์€ ๋ณด๊ธฐ(prototype, exemplar)๋กœ๋ถ€ํ„ฐ ๋ฒ”์ฃผํ™”๋œ๋‹ค. ์˜๋ฏธ์‚ฌ์šฉ์ด๋ก  ์–ดํœ˜์  ๋ฒ”์œ„(lexical scope): ์˜๋ฏธ์‚ฌ์šฉ์ด๋ก ์— ๋”ฐ๋ฅด๋ฉด ๋‹จ์–ด์˜ ์˜๋ฏธ๋Š” ๊ทธ ์–ดํœ˜์ ์ธ, ..

0. ๋ฏธ๋ฆฌ๋ณด๋Š” ๊ฒฐ๋ก  ๋ถˆ๋ณ€๊ฐ’๊ณผ ๊ฐ€๋ณ€๊ฐ’์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€์— ๋”ฐ๋ผ ๋‚˜๋‰œ๋‹ค. ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ (๋ถˆ๋ณ€์„ฑ) ๋ณ€์ˆ˜์˜ ๊ฐ’๋งŒ ์žฌํ• ๋‹นํ•˜๋Š” ๋ฐ˜๋ฉด, ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๊ฐ’์€ ๋ฌถ์Œ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Ÿ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ ์ด ์ฃผ์†Œ์— ์žˆ๋Š” ๊ฐ’์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์— ์œ„์น˜ํ•˜์—ฌ ๊ฐ์ฒด ๋‚ด๋ถ€ ๋ณ€์ˆ˜๋“ค์˜ ์ฃผ์†Ÿ๊ฐ’์„ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ”„๋กœํผํ‹ฐ ๋ณ€๊ฒฝ ์‹œ ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.(๊ฐ€๋ณ€์„ฑ) 1. ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๊ณผ์ • - ๋ฐ์ดํ„ฐ ์˜์—ญ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐ’์„ ์ง์ ‘ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. - ๊ฐ’์„ ์žฌํ• ๋‹นํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค. 1) ๋ฐ”๊พธ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค. 2-1) ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด, ๊ทธ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Ÿ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค 2-2) ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋‹ค๋ฉด, ์ƒˆ๋กœ ..

arguments๊ฐ์ฒด: ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์ƒ์„ฑ ์‹œ์ ์— ๋งŒ๋“ค์–ด์ง€๋‹ค arguments ๊ฐ์ฒด๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์ƒ์„ฑ ์‹œ์ ์— ํ•จ๊ป˜ ๋งŒ๋“œ๋Š” ์ •๋ณด ์ค‘ ํ•˜๋‚˜๋‹ค. ์ง€์ •ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ˜ธ์ถœ ์‹œ ์ธ์ž๊ฐ€ ๋ชจ๋‘ arguments ์ •๋ณด์— ๋‹ด๊ธด๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์„ฑ ๋•์— ํ•จ์ˆ˜์˜ ์ž์œจ์„ฑ์„ ๋†’์ด๋Š” ์ธก๋ฉด์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค. arguments๋Š” ์œ ์‚ฌ๋ฐฐ์—ด ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์ฒ˜๋Ÿผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ณ„๋„์˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋˜ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ฐ”๊พธ๋ฉด arguments์˜ ๊ฐ’๋„ ๋ฐ”๋€Œ๋Š”๋ฐ, ์ด๋Š” ์ „๋‹ฌ๋œ ์ธ์ž๋ฅผ ๋ชจ๋‘ ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ผ๋Š” ๋ณธ๋ž˜์˜ ๊ฐœ๋…๊ณผ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ๋ฌธ์— ES6์—์„œ๋Š” ๋‚˜๋จธ์ง€ ํŒŒ๋ผ๋ฏธํ„ฐ(rest parameter aka ...)๊ฐ€ ๋“ฑ์žฅํ•˜์—ฌ argumetns๋ฅผ ๋Œ€์ฒดํ•˜๊ณ  ์žˆ๋‹ค. 1. ์ธ์ž ๊ฐœ์ˆ˜์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ, ์œ ์—ฐํ•˜๊ฒŒ ์ฒ˜..

Window ๊ฐ์ฒด ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์†Œ๋“ค๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„, ๋ชจ๋“  ๋ณ€์ˆ˜๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค. ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ „์—ญ๊ฐ์ฒด(๊ธ€๋กœ๋ฒŒ๊ฐ์ฒด)์ด๋‹ค. const really = 'Really?' really; // 'Really?' // ์ „์—ญ๋ณ€์ˆ˜, ์–ด๋””์—์„œ๋‚˜ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. window.really // undefined let๊ณผ const ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ๋ธ”๋ก ์Šค์ฝ”ํ”„์ด๊ธฐ ๋•Œ๋ฌธ์— window ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋ธ”๋ก์—์„œ ์„ ์–ธ๋œ ๊ฒƒ์œผ๋กœ ํ‰๊ฐ€๋˜์–ด ์ „์—ญ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์—†๋‹ค. window์˜ ๋ฉ”์†Œ๋“œ & ํ”„๋กœํผํ‹ฐ window.open(); window.close(); open๋ฉ”์„œ๋“œ๋Š” ํ˜ธ์ถœ์ฃผ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ „์—ญ๊ฐ์ฒด๋กœ ๋ฐ›์•„๋“ค์ด๊ธฐ ๋•Œ๋ฌธ์— window๋Š” ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํ•จ์ˆ˜์™€ ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— wi..

์„ธ ์ค„ ์š”์•ฝ 1. Javascript๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์จ ํ•˜๋‚˜์˜ ๊ฐœ๋ณ„๋œ ๋Œ€๋ช…์‚ฌ๋กœ ์“ฐ์ธ๋‹ค. 2. ECMAScript๋Š” ํ‘œ์ค€ํ™”๋œ JavaScript๋ฅผ ๋งํ•˜๋ฉฐ, ์–ธ์–ด์˜ ์‚ฌ์–‘(Specification)์„ ๋œปํ•œ๋‹ค. 3. ES6, ECMAScripit6๋Š” ECMA์—์„œ 2015๋…„ 6์›” ๋ฐœํ–‰ํ•œ ํ‘œ์ค€ํ™”ํ•œ ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฒ„์ „์„ ๋งํ•œ๋‹ค. More About ECMAScript ECMA, (์œ ๋Ÿฝ ์ปดํ“จํ„ฐ ์ œ์กฐ์—…์ฒด ํ˜‘ํšŒ)๋Š” ๊ธฐ์ˆ  ํ‘œ์ค€์„ ๋งŒ๋“œ๋Š” ์กฐ์ง์œผ๋กœ, ์ •๋ณด ํ†ต์‹ ์— ๋Œ€ํ•œ ํ‘œ์ค€์„ ์ œ์ •ํ•˜๋Š” ๋น„์˜๋ฆฌ ํ‘œ์ค€ํ™” ๊ธฐ๊ตฌ๋‹ค. ECMA ์Šคํฌ๋ฆฝํŠธ๋Š” ECMA ์ธํ„ฐ๋‚ด์…”๋„์—์„œ ๋ฐœํ–‰ํ•œ ํ‘œ์ค€์ด๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ฒ”์šฉ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์— ๋Œ€ํ•œ ์‚ฌ์–‘์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.ECMA ์Šคํฌ๋ฆฝํŠธ ๊ทœ๊ฒฉ์„ ์ค€์ˆ˜ํ•˜๋Š” ๋ฒ”์šฉ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ..

JavaScript Object Notation๋ฐ์ดํ„ฐ ํ‘œํ˜„ ๋ฐฉ๋ฒ•, ๋ฐ์ดํ„ฐ ๊ตํ™˜ ํฌ๋งท์ด๋‹ค. ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ„ ๋น„๋™๊ธฐ ํ†ต์‹ ์— ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.key, value ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.ํŠน์ • ์–ธ์–ด์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค.XML์˜ ๋ถˆํ•„์š”ํ•œ ํƒœ๊ทธ, ๋งŽ์€ ์šฉ๋Ÿ‰, ๋‚˜์œ ๊ฐ€๋…์„ฑ ๋•Œ๋ฌธ์— JSON์ด ๋Œ€๋ถ€๋ถ„ ๋Œ€์ฒด๋˜์—ˆ๋‹ค.eXtensible Markup Language: ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ํƒœ๊ทธ๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.data ํ‘œํ˜„์— ์ง‘์ค‘ํ•œ HTML๊ณผ ๋‹ฌ๋ฆฌ, data ์ „๋‹ฌ์— ์ง‘์ค‘ํ•œ ์–ธ์–ด๋‹ค.  JSON ๊ตฌ์กฐ{ "squadName": "Super hero squad", "homeTown": "Metro City", "formed": 2016, "act..