JAVASCRIPT

[JAVASCRIPT] ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜ ํƒ€์ž… ์ข…๋ฅ˜

Arr_ 2021. 10. 26. 21:25
  • var, let
 <body>
    <script>
      {
        let x = 2;
        var y = 3;
      }
      console.log(y);
      console.log(x);
    </script>
  </body>

- var๋Š” block scope์ด ์—†์–ด์„œ ๊ด„ํ˜ธ์— ์ƒ๊ด€์—†์ด ๋ถˆ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ์Œ

- let๋Š” block scope์ด ์žˆ์–ด์„œ ๋กœ์ปฌ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ๋Œ€๊ด„ํ˜ธ๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒฝ์šฐ ๋ถˆ๋Ÿฌ๋‚ผ ์ˆ˜ ์—†์Œ

 

<body>
    <script>
      var y = 2;
      let x = 10;
      {
        let x = 2;
        var y = 3;
      }
      console.log(y);
      console.log(x);
    </script>
  </body>

 

- var๋Š” ์žฌ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜์—ฌ console์— 3์ด ๋‚˜์˜ด

- let๋Š” ์žฌ์„ ์–ธ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์—ฌ ์ฒ˜์Œ์— ์„ ์–ธํ•œ 10์ด console์— ์ถœ๋ ฅ๋จ

 

  <body>
    <script>
      carName = "Volvo";
      carName2 = "Saab"; 

      var carName;
      let carName2;

      console.log(carName);
      console.log(carName2);
    </script>
  </body>

 

- hoisting : ์„ ์–ธํ•˜๊ธฐ ์ „์— ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ

- var๋Š” hoisting์ด ๊ฐ€๋Šฅํ•˜๋‚˜, let์€ hoisting์ด ๋ถˆ๊ฐ€๋Šฅํ•จ

 


  • const
  <body>
    <script>
      //1. ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€
      const PI = 3.14159265;
      PI = 3.14; //TypeError: Assignment to constant variable.

      //2. ์„ ์–ธํ•  ๋•Œ ๊ฐ’ ๋ถ€์—ฌ
        const PI;
        PI = 3.14159265; //SyntaxError: Missing initializer in const declaration

      //3. block scope ๊ฐ€์ง => 10์ด ์ถœ๋ ฅ๋จ
      const x = 10;
      {
        const x = 2;
      }
      console.log(x);
    </script>
  </body>

 

- const๋Š” ๊ฐ’ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€ํ•˜๋ฉฐ, ์ฒ˜์Œ์— ์„ ์–ธํ•  ๋•Œ ๊ฐ’์„ ๋ถ€์—ฌํ•ด์•ผ ํ•จ. block scope๋ฅผ ๊ฐ€์ ธ์„œ ๊ด„ํ˜ธ ๋ฐ–์—์„œ ๋ถˆ๋Ÿฌ๋‚ผ ์ˆ˜ ์—†์Œ