ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • const, let, var의 차이
    JavaScript 2020. 10. 12. 16:03

    ES6 이전에는 값을 담는 데 var 키워드 만을 이용했다. var 키워드는 함수 단위의 scope를 가진다. 즉, 해당 값을 사용할 수 있는 코드 영역이 함수 단위다.

    function hello() {
      var a = "hello";
      if(true) { // {1}
        var a = "world";
        console.log(a); // world  {2}
      }
      console.log(a); // world  {3}
    }
    hello();

    {1} if 문 밖에서 var 값을 "hello"로 선언하고, {2} if 문 안에서 "world"로 설정했다. if 문 안에서 새로 선언했음에도 if 문 밖에서 a를 조회하면 {3} 변경된 값이 나타난다.

    이런 문제점을 해결해 주는 것이 바로 let과 const 인 것!

    function aboutLet() {
      let a = 10;
      if(true){
        let a = 20;
        console.log(a); // 20
      }
      console.log(a); // 10
    }
    aboutLet();

    let과 const는 scope가 함수 단위가 아닌 블록 단위이므로, if 문 안에서 선언한 a 값은 if 문 밖의 a 값을 변경하지 않는다. 또한 let과 const를 사용할 때 아래 처럼 같은 블록 안에서의 중복 선언이 불가능하다.

    let a = 10;
    let b = 20; // SyntaxError: Identifier 'a' has already been declared

    const는 한번 선언하면 재설정할 수 없다.

    const b = 'hi';
    b = 'hello';
    console.log(b) // TypeError: Assignment to constant variable.

    정리

    • let은 한번 선언한 후 값이 유동적으로 바뀔 수 있을 때만 사용한다.(for문 안에서 주로 사용)
    • const는 한번 설정한 후 바뀔 일이 없는 값에 사용한다.

    'JavaScript' 카테고리의 다른 글

    호이스팅  (0) 2020.10.28
    Scope  (0) 2020.10.25
    Promise 객체  (2) 2020.07.04
    객체 지향 프로그래밍(5) - 상속의 방법(ES5 / ES6)  (0) 2020.06.21
    객체 지향 프로그래밍(4) - this  (0) 2020.06.20

    댓글

Designed by Tistory.