비주얼 스튜디오 코드를 이용해서 코드를 작성하는 중에 내가 제대로 작성하고 있나 확인할 겸 크롬 콘솔모드에서 코드를 확인하곤 한다. 분명 let으로 선언한 변수는 재선언이 안된다고 했는데 에러메세지없이 그대로 재할당이 되었다!
왜 이러는지 구글링 한 결과 아래와 같은 답을 얻을 수 있었다.
일반 스크립트 실행과 콘솔 모드에는 약간의 문법 차이가 있다.
전자에서는 표준 JS문법을 따르기 때문에 let을 재선언하려고 하면 오류를 출력한다. 후자는 예외적으로 콘솔모드의 interactive한 특징 때문에 재선언을 허용한다.
> let a; let a; // 한 줄에 재선언하는 경우는 재선언 불가
< Uncaught SyntaxError: Identifier 'a' has already been declared
> let a;
> let a; // 다른 줄에서 재선언은 가능
위의 코드처럼 콘솔모드에서는 한 줄에 재선언을 하는 경우에는 에러를 출력하지만 다른 줄에 변수를 재선언하는 경우는 허용해준다.
또한 하나의 변수에 대해 변수의 종류를 바꾸는 행위(var, let, const바꾸기)는 콘솔모드에서도 금지되어있다.
참고)
'바닐라코딩 사전학습 > 추가공부 및 부가설명' 카테고리의 다른 글
JavaScript 와 Node.js (0) | 2021.12.31 |
---|---|
메모리 주소는 무슨 타입일까? (0) | 2021.12.27 |
크롬 개발자도구로 디버깅하기 (0) | 2021.12.24 |
주석 (0) | 2021.12.24 |
npm으로 JavaScript 모듈 설치하기 (0) | 2021.12.15 |