var 키워드로 선언한 변수의 문제점
- 변수 중복 선언을 허용한다.
- 함수 레벨 스코프 - 전역 변수를 남발해 의도치 않게 전역 변수가 중복 선언될 가능성이 있다.
- 변수 호이스팅 - 프로그램 흐름상 맞지 않고 가독성을 떨어뜨리며 오류가 발생할 수 있다.
이러한 var 키워드의 단점을 보완하기 위해 ES6에서는 let과 const를 도입했다.
let 키워드
- 변수를 중복 선언하면 문법 에러가 발생한다.
- 모든 코드 블록(함수, if문, for문, while문, try/catch문 등)을 지역 스코프로 인정하는 블록 레벨 스코프를 따른다.
- 선언 단계와 초기화 단계가 분리되어 진행된다.
- 전역 객체의 프로퍼티가 아니다.
const 키워드
특징은 let 키워드와 대부분 동일하므로(블록 레벨 스코프를 따름) let 키워드와 다른 점을 중심으로 살펴보자.
- const 키워드로 선언한 변수는 반드시 선언과 동시에 초기화해야 한다.
- 원시 값을 할당할 경우 재할당이 금지된 변수이다. (var, let은 재할당 가능)
- 객체를 할당한 경우에는 값을 변경할 수 있다.
var / let / const
변수 선언에는 기본적으로 const를 선언하고 let은 재할당이 필요한 경우에 한정해 사용하는 것이 좋다.
const를 사용하면 의도치 않은 재할당을 방지해 좀 더 안전하기 때문이다.
일단 const를 사용하고 반드시 재할당이 필요하다면 그 때 const를 let으로 변경해 사용하도록 하자.
'FRONT > JAVASCRIPT' 카테고리의 다른 글
[javascript] 생성자 함수에 의한 객체 생성 (0) | 2021.06.21 |
---|---|
[javascript] 프로퍼티 어트리뷰트 (0) | 2021.06.21 |
[javascript] 전역 변수의 문제점 (0) | 2021.06.20 |
[javascript] 캔버스(Canvas)로 그림판 만들기(1) 캔버스에 선그리기 (0) | 2021.06.20 |
[javascript] 스코프 (함수 레벨 스코프, 렉시컬 스코프) (0) | 2021.06.19 |