๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ˜ธ์ด์ŠคํŒ…2

JS_๊ธฐ์ˆ  (3)_ Hoisting(ํ˜ธ์ด์ŠคํŒ…) ๋ฟŒ์ˆ˜๊ธฐ JS์˜ ํ˜ธ์ด์ŠคํŒ…์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด์•˜๋‹ค! 1. ํ˜ธ์ด์ŠคํŒ…์ด๋ž€? ( 1 ) ํ˜ธ์ด์ŠคํŒ…(Hoisting)์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ JavaScript์—์„œ ํ˜ธ์ด์ŠคํŒ…(hoisting)์ด๋ž€, ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์„ ์–ธ ์ „์— ๋ฏธ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. - MDN (https://developer.mozilla.org/ko/docs/Glossary/Hoisting) MDN ๋ฌธ์„œ์—์„œ๋Š” ์œ„์™€ ๊ฐ™์ด ๋ฒˆ์—ญ์„ ํ•˜์˜€๋‹ค. ์ฆ‰, JS์˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ฝ๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜, ์ƒ์ˆ˜, ํ•จ์ˆ˜ ๋“ฑ์„ ๋ชจ๋‘ ๋ฏธ๋ฆฌ ํ• ๋‹น์„ ํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค. ๊ธ€์˜ ๋ณธ๊ฒฉ์ ์ธ ์‹œ์ž‘์— ์•ž์„œ ๋ชจ๋“  ์‹๋ณ„์ž(๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค ๋“ฑ)๋Š” ํ˜ธ์ด์ŠคํŒ…์ด ๋œ๋‹ค! ( 2 ) var์˜ ํŠน์ง• JS์—์„œ ๋ณ€์ˆ˜, ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 1.var .. 2023. 3. 31.
JS_๋ฌธ๋ฒ• (3)_ํ˜ธ์ด์ŠคํŒ… ํ˜ธ์ด์ŠคํŒ… ์ด์Šˆ Hoisting = ๋Œ์–ด์˜ฌ๋ฆฐ๋‹ค ์ผ๋ฐ˜์ ์ธ ์–ธ์–ด = ํ•จ์ˆ˜, ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ ํ›„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ JS = ์„ ์–ธ ์ „์— ์‚ฌ์šฉ์„ ํ•ด๋„ ์—๋Ÿฌ๋ฅผ ๋‚ด์ง€ ์•Š๋Š”๋‹ค...! ์˜ˆ์‹œ 1. var ํ‚ค์›Œ๋“œ var์€ let๊ณผ ๊ฐ™์€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ์— ์“ฐ์ด๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋ฅผ ์žฌ์„ ์–ธํ•ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค. var a = 1; var a = 2; console.log(a) >>> 2 ====================== let a = 1; let a = 2; console.log(a) >>> SyntaxError: Identifier 'a' has already been declared ํ˜ธ์ด์ŠคํŒ…์ด ์ผ์–ด๋‚˜๋Š” ์˜ˆ์‹œ console.log(a) a = 10; console.log(a) var a = 1 console... 2022. 2. 16.
๋ฐ˜์‘ํ˜•