๐Ÿงฟ Javascript scope

Dayยท2022๋…„ 4์›” 4์ผ
0
post-thumbnail

๐Ÿงญ scope

scope ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„.

๋ณ€์ˆ˜๊ฐ€ ์–ด๋””๊นŒ์ง€ ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š”๊ฐ€

์„ ์–ธํ•ด๋„ ๊ทธ ์„ ์–ธํ•œ ์˜์—ญ์— ์ ‘๊ทผํ•  ์ˆ˜๊ฐ€ ์—†์„ ๋•Œ is not defined ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์–ด๋–ค ๋ณ€์ˆ˜๋Š” ์—ฌ๊ธฐ์ €๊ธฐ ์“ธ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์–ด๋–ค ๋ณ€์ˆ˜๋Š” ํŠน์ • ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ์“ธ ์ˆ˜ ์žˆ์Œ.

block
block ์€ {} ๋กœ ๊ฐ์‹ธ์ง„ ๊ฒƒ. for if ๋ฌธ ๊ฐ™์€๋ฐ ์ผ๋˜ ๊ฒƒ๋“ค

block ๋‚ด๋ถ€์—์„œ ์ •์˜๋œ ๋ณ€์ˆ˜๋Š” ๊ทธ ์•ˆ์—์„œ๋งŒ ์“ธ ์ˆ˜ ์žˆ์Œ
์ด๋ฅผ local variable ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

block ๋ฐ–์ธ global scope์—์„œ ๋งŒ๋“  ๋ณ€์ˆ˜๋ฅผ global variable(์ „์—ญ๋ณ€์ˆ˜)๋ผ๊ณ  ํ•œ๋‹ค.

๊ทธ๋ƒฅ ์“ฐ์ด๋Š” ์šฉ์–ด๋“ค !

global scope : ์ „์—ญ ๋ฒ”์œ„
block scope : ์ค‘๊ด„ํ˜ธ ์•ˆ์˜ ๋ฒ”์œ„
global namespace : ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„
scope pollution : ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋‚จ์šฉํ•˜์—ฌ ๊ฐ’์ด ์ˆ˜์ •๋œ ๊ฒฝ์šฐ

์š”์•ฝํ•˜๋ฉด, blocks scope๋ฅผ ๋งŽ์ด ์“ฐ๊ณ , gloobal scope๋Š” ์ตœ๋Œ€ํ•œ ์ค„์ด๋ ค๊ณ  ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.
block ์•ˆ์—์„œ ์—ญํ• ํ•˜๊ณ  ๋‹ซํž ๋•Œ ์ˆ˜๋ช…์ด ๋‹คํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ข‹์€ ๋ฒˆ์ˆ˜.

0๊ฐœ์˜ ๋Œ“๊ธ€