[JavaScritpt] var, let, const란
들어가며....
- 소스를 봤는데 스크립트부분에 뜬금없이 let이란게 튀어나오길래 이게 뭔가 싶어서 알아보기 시작했다.
선요약 : ES6(es6 , 에크마 스크립트?) 에서 새로 생긴 녀석임 변수를 선언하는 방법임 / var보다는 let / const를 사용하자
특징 var vs let / const
var | let/cont | 비고 | |
---|---|---|---|
변수 선언 전 접근 | 가능(undefined가 리턴됨) | 불가능 | |
변수 중복선언 | 가능 | 불가능 | |
스코핑 | 유효범위가 블록{}을 넘어선다 | 유효범위가 블록{}안이다 |
let과 const의 차이
- const는 이름만 봐서는 상수라고 보인다.
- 실제로 원시형(Primitives type : string, number , boolean, null, undefined)에서는 상수로 동ㅈ가한다.
- 그래서 초기값을 설정하지않거나, 재할당하려고하면 에러가난다.
- 참조형( Complex type: array, object, function)의 경우는 const로 선언해도 멤버값 조작이 가능하다.
- 위에서처럼 bar는 foo를 참조한다. 참조가아니고 copy하고싶으면 array는 ...연산자를 사용하고, object는 assign() 함수를 사용한다.
결론적으로
- ES6 에서는 var는 지양하고 가급적 let과 const를 사용하자
- 원시형에서 변수는 let, 상수는 const로 선언한다
- 참조형은 const로 선언한다
'웹프로그래밍 > JavaScript' 카테고리의 다른 글
[ajax]radio.value udefined오류 (2) | 2015.07.31 |
---|---|
JavaScript] 조건부 연산자 <삼항연산자(?연산자)> (0) | 2014.09.03 |