less than 1 minute read

day : 2022.02.18

block scope๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

scope ๋ž€?

scope๋ž€ ๋ฒ”์œ„, ๋ณดํ†ต ์œ ํšจ๋ฒ”์œ„๋ฅผ ๋œปํ•˜๋ฉฐ,

์–ด๋–ค ๋ณ€์ˆ˜๋“ค์ด ์–ด๋А ์‹œ์ ๊นŒ์ง€ ์œ ํšจํ•œ์ง€๋ฅผ ์ •์˜ํ•œ๋‹ค.

scope๋Š” ๋ฐ‘์˜ ๋‘๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

  • ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„
  • ๋ธ”๋ก ์Šค์ฝ”ํ”„

function Scope๋ž€?

ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„๋Š” ํ•จ์ˆ˜์— ์˜ํ•ด์„œ ์ƒ๊ธฐ๋Š” ๋ฒ”์œ„๋ฅผ ๋œปํ•œ๋‹ค.

ES5๊นŒ์ง€๋Š” ๋ฒ”์ˆ˜์˜ ์œ ํšจ๋ฒ”์œ„๊ฐ€ ํ•จ์ˆ˜์— ์˜ํ•ด์„œ๋งŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ.

ES6๋กœ ๋„˜์–ด์˜ค๊ฒŒ ๋˜๋ฉด์„œ block scope๋ผ๋Š” ๊ฒƒ์ด ํƒ„์ƒํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

Block Scope๋ž€?

๋ธ”๋ก ์Šค์ฝ”ํ”„๋„ ์œ ํšจ๋ฒ”์˜๋ฅผ ์˜๋ฏธํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ๋ธ”๋ก์€ ์ฝ”๋“œ ๋ฌธ๋‹จ {}(์ค‘๊ด„ํ˜ธ) ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๋”ฐ๋ผ์„œ { }์— ์˜ํ•ด์„œ ์ƒ๊ธฐ๋Š” ๋ณ€์ˆ˜์˜ ์œ ํšจ๋ฒ”์œ„๋ฅผ ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ผ๊ณ  ํ•œ๋‹ค.

์˜ˆ์‹œ

function func(a) { 
    if (a) { 
        var b = "b"
        let c = "c"
    } 
    else { 
        var b = "b2"
        let c = "c2"
        console.log(a); 
    } 
    console.log(b);	//b or b2 
    console.log(c); //defined
    
} 
func(true);

Tags:

Categories:

Updated: