반응형
const
선언된 변수 지키기 (한번 선언된 변수에 재할당할 수 없는 상수)
1 2 3 4 5 6 7 | function home() { const homename ='my house'; homename = "your house"; console.log(homename); } home(); | cs |
error 발생
- "TypeError: Assignment to constant variable.
at home (nucusoneye.js:3:12)
at nucusoneye.js:7:1
at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:13924
at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:10866"
=> 해당 error 는 상수값인데 동일한 변수명에 또 대입했기 때문에 생기는 오류이다.
1 2 3 4 5 6 7 | function home() { const homename = [1, 2, 3, 3]; homename = ["1"]; console.log(homename); } home(); | cs |
위와 같이 변수에 담아도 동일한 error 가 발생한다.
> 상수는 타입과 상관없이 재할당하는 경우 오류가 발생한다.
정리하자면, ES6는 const를 기본으로 사용하되, 변경이 될 수 있는 변수는 let을 사용하고, var는 사용하지 않는다.
const 특성과 immutable array
1 2 3 4 5 6 | function home() { const list = ["apple", "orange", "watermelon"]; list ="asdfg"; } home(); | cs |
error 발생
"TypeError: Assignment to constant variable.
at home (nucusoneye.js:3:8)
at nucusoneye.js:6:1
at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:13924
at https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:10866"
1 2 3 4 5 6 7 8 | function home() { const list = ["apple", "orange", "watermelon"]; list.push("banana"); console.log(list); } home(); | cs |
> ["apple", "orange", "watermelon", "banana"]
> const 를 사용하더라도 배열과 object 의 값을 변경하는 것은 가능하다.
immutable array 를 생성하는 방법
> 뒤로, 앞으로 등 데이터를 되돌리고 싶을 경우 그때그때마다 저장 값을 view 해야하는 경우
1 2 3 4 5 6 7 8 9 10 11 12 13 | function home() { const list = ["apple", "orange", "watermelon"]; list.push("banana"); console.log(list); } home(); // immutable array const list = ["apple", "orange", "watermelon"]; list2 = [].concat(list, "banana"); console.log(list2); | cs |
> ["apple", "orange", "watermelon", "banana"]
반응형
'Front-End > JavaScript' 카테고리의 다른 글
[Javascript ES6] 6. 간단한 객체 생성 (0) | 2019.02.12 |
---|---|
[Javascript ES6] 5. from Method 로 진짜 배열 만들기 (0) | 2019.02.12 |
[Javascript ES6] 4. spread operator (배열의 복사와 활용) (0) | 2019.02.12 |
[Javascript ES6] 3. String 에 새로운 메서드(Method) 와 for of(순회하기) (0) | 2019.02.11 |
[Javascript ES6] 1. ES6 (let, closure) (0) | 2019.02.07 |
최근댓글