var_let_const

var

์ดˆ๊ธฐ์— js ๋ณ€์ˆ˜ ์„ ์–ธ๋ฐฉ์‹์ด๋‹ค.

ํŠน์ง•

  • ๋ธ”๋ก ์Šค์ฝ”ํ”„๊ฐ€ ์—†๋‹ค.

  • ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด ์ด์ „์˜ ๋ณ€์ˆ˜๋ฅผ ๋ฌด์‹œํ•œ๋‹ค.

    var user = 'Pete';
    var user = 'John';
    
    alert(user); // John

    ๋ธ”๋ก ์Šค์ฝ”ํ”„๊ฐ€ ์—†๋Š”๋ฐ๋‹ค๊ฐ€ ์ด์ „์˜ ๋ณ€์ˆ˜๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๋ฎ์–ด์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…์‹œ ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•  ํ™•๋ฅ ์ด ๋†’๋‹ค.

  • ์„ ์–ธํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. var ์„ ์–ธ์€ ์„ ์–ธ ์œ„์น˜์— ์ƒ๊ด€์—†์ด ํ•จ์ˆ˜๋‚ด์—์„œ ์„ ์–ธํ–ˆ๋‹ค๋ฉด ํ•จ์ˆ˜๊ฐ€ ์‹œ์ž‘๋ ๋•Œ,์ „์—ญ์—์„œ ์„ ์–ธํ–ˆ๋‹ค๋ฉด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์ฒ˜๋ฆฌ๋œ๋‹ค.

      ```js
      function sayHi() {
          phrase = "Hello";
          alert(phrase);
          var phrase;
      }
      sayHi();
      ```
  • ์„ ์–ธ์€ ํ˜ธ์ด์ŠคํŒ… ๋˜์ง€๋งŒ ํ• ๋‹น์€ ํ˜ธ์ด์ŠคํŒ… ๋˜์ง€ ์•Š๋Š”๋‹ค.

    function sayHi() {
      alert(phrase);
      var phrase = 'Hello';
    }
    sayHi(); //undefined

    ์œ„์˜ ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€ ๋™์ž‘๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    function sayHi() {
      //var phrase;
    
      alert(phrase);
      var phrase = 'Hello';
    }
    sayHi(); //undefined

์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ํ‘œํ˜„์‹ (IIFE, Immediately-Invoked Function Expressions)

js๋Š” ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์œผ๋กœ ์ •์˜ํ•œ ํ•จ์ˆ˜๋ฅผ ์ •์˜์™€ ๋™์‹œ์— ๋ฐ”๋กœ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ•˜์ง€๋งŒ ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์„ ()๋กœ ๊ฐ์‹ธ ์„ ์–ธ๋ฌธ์ด ์•„๋‹Œ ํ‘œํ˜„์‹์œผ๋กœ ์ธ์‹ํ•˜๋„๋ก ์†์—ฌ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด ์—†์œผ๋ฉฐ, ์ฆ‰์‹œ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

(function() {
  alert("ํ•จ์ˆ˜๋ฅผ ๊ด„ํ˜ธ๋กœ ๋‘˜๋Ÿฌ์‹ธ๊ธฐ");
})();

(function() {
  alert("์ „์ฒด๋ฅผ ๊ด„ํ˜ธ๋กœ ๋‘˜๋Ÿฌ์‹ธ๊ธฐ");
}());

!function() {
  alert("ํ‘œํ˜„์‹ ์•ž์— ๋น„ํŠธ NOT ์—ฐ์‚ฐ์ž ๋ถ™์ด๊ธฐ");
}();

+function() {
  alert("ํ‘œํ˜„์‹ ์•ž์— ๋‹จํ•ญ ๋ง์…ˆ ์—ฐ์‚ฐ์ž ๋ถ™์ด๊ธฐ");
}();

let

const

c/c++์˜ const, java์˜ final๊ณผ ๊ฐ™์ด ์ƒ์ˆ˜๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ธฐ์œ„ํ•œ ๋ฐฉ์‹

Last updated