es5까지 Javascript에는 변수 선언할때 var를 사용하였었다.
하지만 var를 선언하여 변수를 선언할때 잘못된 사용으로 인해 문제가 발생하는 경우가 있었다.
하지만
자바스크립트 es6로 올라가게 되면서 let 그리고 const 가 추가되었다.
프로젝트를 진행하면서 es6를 처음 사용하게 되었는데
java8이 나와서 java 사용이 편해진 것 처럼 es6를 사용하면서 더욱 편하게 개발을 진행하였다.
그럼 es6의 특징에 대해 알아보자.
[var와의 차이]
var는 function-scoped이고, let 그리고 const는 block-scoped 이다.
함수 스코프는 모든 변수가 함수에 속하고 한수 전체에 걸쳐서 사용되는 개념이다.
block-scoped는 선언된 변수를 둘러싼 블록의 스코프를 이용하는 개념이다.
변경내용 1)
기존의 var의 경우 두 번이상 선언이 가능하지만
let, const의 경우 일반 개발언어들과 동일하게 두번이상 선언하게 될 경우 오류를 내보낸다.
변경내용 2)
var에 경우 먼전 선언하지 않아도 밑어딘가에 선언되어 있을 경우
함수 호이스팅에 의해서 동작되지만
const와 let의 경우에는 오류가 발생한다. 이는 더 직관적이고
오류를 더 방지할 수 있다.
다른 예도 살펴 보자
변경내용 3)
var의 경우 전역 변수를 선언할 경우에 global object의 properties로 들어가게 된다.
선언된 global object를 사용하기 위해서 this나 window 키워드를 통해 사용한다.
하지만 let이나 const의 경우에는 global object의 properties를 생설할 수 없다.
[let과 const 차이]
const는 상수를 선언할 때 사용한다.
const는 재 선언이 안된다.
그러므로 array, object, function등을 const로 많이 선언한다.
1 2 3 4 | const foo = [0, 1]; const arr = function() { console.log('dd'); }; | cs |
[결론]
var을 사용하지 말고, let 과 const 를 사용하고,
let은 변수 상수는 const를 사용하자.
'web > javaScript' 카테고리의 다른 글
div내에 overflow scroll 옵션에 따라 스크롤 생성 시 제일 밑으로 스크롤 내리기 (0) | 2018.06.17 |
---|---|
javascript로 여러 파일 다운로드 하기 (0) | 2018.05.27 |
Javascript 처리과정 (0) | 2018.05.27 |
javascript 기타 팁 (0) | 2018.05.27 |
Javascript 성능 저하에 조심 할 부분 (0) | 2018.05.27 |