Skip to content

JavaScript โ€‹

JavaScript ๊ด€๋ จ ํฌ์ŠคํŠธ๋“ค์ž…๋‹ˆ๋‹ค.

JavaScript Execution Context ์‹คํ–‰ ์ปจํ…์ŠคํŠธ - ์˜ˆ์ œํŽธ (feat. ํ˜ธ์ด์ŠคํŒ…, ์Šค์ฝ”ํ”„ ์ฒด์ธ, ํด๋กœ์ €)

๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹คํ–‰์ปจํ…์ŠคํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ณ , ํ˜ธ์ด์ŠคํŒ…๊ณผ ์Šค์ฝ”ํ”„ ์ฒด์ธ, ํด๋กœ์ €๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ด…๋‹ˆ๋‹ค

JavaScript Execution Context ์‹คํ–‰ ์ปจํ…์ŠคํŠธ - ๊ฐœ๋…ํŽธ (feat. ํ˜ธ์ด์ŠคํŒ…, ์Šค์ฝ”ํ”„ ์ฒด์ธ, ํด๋กœ์ €)

JavaScript ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” JavaScript ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์„ ์ •์˜ํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ๊ฐœ๋…๊ณผ ๊ตฌ์„ฑ ์š”์†Œ, ๊ทธ๋ฆฌ๊ณ  Lexical Environment์™€ Variable Environment์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋™์  ํƒ€์ดํ•‘ ์–ธ์–ด JavaScript ๊ฐ’์€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์ €์žฅ๋ ๊นŒ? (Feat. Tagged Pointer, NaN-Boxing)

JavaScript ์—์„œ๋Š” ์ˆซ์ž, ๋ฌธ์ž์—ด, ๋ถˆ๋ฆฌ์–ธ, ๊ฐ์ฒด ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐ’์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ์œผ๋กœ๋Š” ์›์‹œ๊ฐ’์€ ์Šคํƒ์—, ๋‚˜๋จธ์ง€๋Š” ํž™์— ์ €์žฅ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋™์  ํƒ€์ž… ์–ธ์–ด์ธ JavaScript ๋Š” ๋Ÿฐํƒ€์ž„์— ํƒ€์ž…์ด ๊ฒฐ์ •๋˜๋Š”๋ฐ, ๊ทธ๋ ‡๋‹ค๋ฉด ์‹ค์ œ๋กœ ๊ฐ’์€ ์–ด๋””์— ๋˜ ์–ด๋–ป๊ฒŒ ์ €์žฅ๋ ๊นŒ์š” ?

๊ฐ์ฒด๋ฆฌํ„ฐ๋Ÿด vs ์ •์ ๋ฉ”์„œ๋“œ vs ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค vs ํด๋กœ์ €ํ•จ์ˆ˜

๊ฐ์ฒด๋ฆฌํ„ฐ๋Ÿด, ์ •์ ๋ฉ”์„œ๋“œ, ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค, ํด๋กœ์ €ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ๋ชจ๋‘ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ๊ฐ๊ฐ์˜ ํŠน์ง•๊ณผ ์žฅ๋‹จ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ด ๋„ค ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๋น„๊ตํ•˜๊ณ , ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ๊ณผ ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.