[JavaScript] ๋ชจ๋“ˆํ™”๊ฐ€ ํ•„์š”ํ•œ ์ด์œ (Module)

Module์ด๋ž€? ์ฝ”๋“œ๋ฅผ ํ•ด๋‹น ํŒŒ์ผ ๋‚ด๋ถ€์—์„œ๋งŒ ํ•œ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋“ˆํ™”ํ•˜๋Š” ๊ฒƒ ์ฆ‰, ํ•œ ๋ชจ๋“ˆ์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ํ•œ ํŒŒ์ผ ์•ˆ์— ์ž‘์„ฑ๋ผ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๋งํ•œ๋‹ค. ๋ชจ๋“ˆํ™”๋ฅผ ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“ˆ(์ฆ‰ ์„œ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ)์—์„œ๋Š” ๋‹ค๋ฅธ ํŒŒ์ผ์— ์žˆ๋Š” ๊ฒƒ๋“ค์„ ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๋ณผ ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์–ด๋–ค ๋ชจ๋“ˆ์˜ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ œ๊ณตํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชจ๋“ˆ์—์„œ๋Š” export๋ฅผ, ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชจ๋“ˆ์—์„œ๋Š” import๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. Module์˜ ํ•„์š”์„ฑ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ ๊ฐ๊ฐ์˜ ํŒŒ์ผ์˜ ๋ชจ๋“  ์ฝ”๋“œ๋“ค์„ global scope๋กœ ์ธก์ •๋œ๋‹ค. ์ฆ‰ ํŒŒ์ผ ์•ˆ์— ์ž‘์„ฑ๋œ ํ•จ์ˆ˜๋“ค์€ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์ด๋ผ๋ฉด window์—, ๋…ธ๋“œ ํ™˜๊ฒฝ์ด๋ผ๋ฉด global์— ๋“ฑ๋ก๋œ๋‹ค. ๋ฌธ์ œ๋Š” ์–ด๋–ค ํŒŒ์ผ๋“ค์—์„œ ์ค‘๋ณต์ ์ธ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๊ฐ€ ๊ตฌํ˜„๋ผ์žˆ์„ ๋•Œ ์ด๋ฆ„ ..

[JavaScript] var์„ ์“ฐ๋ฉด ์•ˆ๋˜๋Š” ์ด์œ 

var์˜ ํŠน์ง• (ํŠน์ง•: ์•ˆ์ข‹์Œ..) var์€ ์ผ๋ฐ˜์ ์ธ ์ฝ”๋”ฉ ๋ฐฉ์‹๊ณผ ์–ด๊ธ‹๋‚œ๋‹ค. ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์— ์ข‹์ง€ ์•Š๋‹ค. ์˜ˆ์ „์—” var ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ตœ๊ทผ์—๋Š” var์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œlet(์žฌํ• ๋‹น์ด ํ•„์ˆ˜๋กœ ํ•„์š”ํ•œ ๊ฒฝ์šฐ), const(๊ฐ€๋Šฅํ•œ const๋ฅผ ์‚ฌ์šฉ!)๋ฅผ ๋Œ€์ฒดํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. 1๏ธโƒฃ ๋ณ€์ˆ˜ ์„ ์–ธํ•˜๋Š” ํ‚ค์›Œ๋“œ ์—†์ด ์„ ์–ธ & ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์„ ์–ธ์ธ์ง€, ์žฌํ• ๋‹น์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. something = '๐Ÿฅ'; console.log(something); 2๏ธโƒฃ ์ค‘๋ณต ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด์ „์— ์„ ์–ธํ–ˆ๋˜๊ฒŒ ๋ฎ์–ด ์”Œ์›Œ์งˆ ์ˆ˜ ์žˆ์–ด ๋ฒ„๊ทธ๋‚˜ ์—๋Ÿฌ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค. var myfruit = '๐ŸŒ'; var myfruit = '๐ŸŒ'; console.log(myfruit); 3๏ธโƒฃ ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„ ์ง€์›..

[JavaScript] ํ˜ธ์ด์ŠคํŒ…(Hoisting)

ํ˜ธ์ด์ŠคํŒ…(Hoisting)์ด๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„(Interpreter)์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „, ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค์˜ ์„ ์–ธ๋ฌธ์„ ์œ„๋กœ ๋Œ์–ด ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋ณ€์ˆ˜์˜ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๋ฅผ ๋ถ„๋ฆฌํ•œ ํ›„, ์„ ์–ธ๋งŒ ์ฝ”๋“œ์˜ ์ตœ์ƒ๋‹จ์œผ๋กœ ์˜ฎ๊ธด๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ด์ŠคํŒ… ํ•จ์ˆ˜์˜ ํ˜ธ์ด์ŠคํŒ…์€ ํ•จ์ˆ˜์˜ ์„ ์–ธ๋ฌธ ์ „์— ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜์˜ ์„ ์–ธ๋ฌธ์€ ์„ ์–ธ ์ด์ „์—๋„ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. print(); function print() { console.log('Good Morning๐ŸŒค๏ธ'); } ๋ณ€์ˆ˜์™€ ํด๋ž˜์Šค ํ˜ธ์ด์ŠคํŒ… ๋ณ€์ˆ˜(let, const)์™€ ํด๋ž˜์Šค๋Š” ์„ ์–ธ๋งŒ ํ˜ธ์ด์ŠคํŒ…์ด ๋˜๊ณ , ์ดˆ๊ธฐํ™”๋Š” ํ˜ธ์ด์ŠคํŒ…์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ดˆ๊ธฐํ™” ์ „์— ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋ฉด ์ปดํŒŒ์ผ(๋นŒ๋“œ) ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. error "Cannot access (..

๐ŸŸจ JavaScript/Hoisting 2022. 12. 25. 17:33
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ