[JS] const vs let vs var, 호이스팅

llunaB·2023년 1월 15일
0

always const, sometimes let and never var

업데이트가 필요한 경우 let을, 그 외에는 모두 const를 사용한다.
var 는 사용하지 않는다.

var vs let 스코프

var 는 재할당이 가능하고 블록 레벨 내에 있어도 전역변수로 인식된다.

그래서 의도치 않은 값이 재할당되어 에러가 발생할 수 있다.

반면 let은 블록 레벨을 따른다.


      var a = 10;
      {
        var a = 20 //=> 전역변수
      }
      console.log(a); //20
      
      let a = 10;
      {
        let a = 20 //=> 지역변수
      }
      console.log(a); //10

var vs let 중복 이름 변수 선언

let은 var 와 달리 중복 이름 변수 선언이 불가하다.


      var a = 10;
      var a = 20; 
      console.log(a); //20

      let a = 10;
      let a = 20; 
      console.log(a); //Uncaught SyntaxError: Identifier 'a' has already been declared

Hoisting?

호이스팅이란, var 선언문이나 function 선언문 등을 해당 스코프의 선두에 옮기 것처럼 동작하는 특성이다.

변수에 할당된 함수 표현식(함수선언식)은 위로 끌어올려지지 않는다.


      foo(); //hi
      foo2(); //Uncaught TypeError: foo2 is not a function

      // 함수선언문
      function foo() {
        console.log("hi");
      }

      //함수선언식
      var foo2 = function() {
        console.log("hihi");
      }
      
profile
안녕하세요. 성장하는 주니어 개발자입니다. :-)

0개의 댓글

관련 채용 정보