Page 21 -
P. 21

2.1.1 const, let


                    보통 자바스크립트를 배울 때는 var로 변수를 선언하는 방법부터 배웁니다. 하지만 var은 이제
                    const와 let이 대체합니다. 먼저 const와 let이 공통적으로 가지는 특징인 블록 스코프(범위)에                       2
                    대해 알아봅시다.


                      if (true) {
                        var x = 3;                                                                    알아두어야 할 자바스크립트
                      }
                      console.log(x); // 3

                      if (true) {
                        const y = 3;
                      }
                      console.log(y); // Uncaught ReferenceError: y is not defined

                    코드는 크롬 개발자 도구( F12  )의 Console 탭에 적으면 됩니다.  Enter 를 누르면 코드가 실행되는
                    데, 코드를 실행하지 않고 줄바꿈을 하려면  Shift + Enter 를 입력합니다.

                    x는 정상적으로 출력되는데 y는 에러가 발생합니다. var을 const로 바꿨을 뿐인데 차이가 발생하
                    는 것입니다. var은 함수 스코프를 가지므로 if문의 블록과 관계없이 접근할 수 있습니다. 하지만
                    const와 let은 블록 스코프를 가지므로 블록 밖에서는 변수에 접근할 수 없습니다. 블록의 범위는

                    if, while, for, function 등에서 볼 수 있는 중괄호({와 } 사이)입니다. 함수 스코프 대신 블록 스
                    코프를 사용함으로써 호이스팅 같은 문제도 해결되고 코드 관리도 수월해졌습니다.

                    const, let과 var은 스코프 종류가 다릅니다. 그렇다면 const와 let 간의 차이는 무엇일까요?
                    const는 한 번 값을 할당하면 다른 값을 할당할 수 없습니다. 다른 값을 할당하려고 하면 에러가
                    발생합니다. 또한, 초기화할 때 값을 할당하지 않으면 에러가 발생합니다. 따라서 const로 선언한
                    변수를 상수라고 부르기도 합니다.

                    다음 예제를 한 줄씩 따라 입력해보세요.


                      const a = 0;
                      a = 1; // Uncaught TypeError: Assignment to constant variable.


                      let b = 0;
                      b = 1; // 1

                      const c; // Uncaught SyntaxError: Missing initializer in const declaration



                                                                                                  67





     node_06.indd   67                                                                      2020-07-14   오전 11:02:01
   16   17   18   19   20   21   22   23   24   25   26