const는 재할당이 불가하다. 그런데 const에 담긴 객체(object, 배열...)의 경우 수정이 가능하다. 어떻게 가능한 걸까? 우선 var, let, const 차이에 대해 간략하게 알아보자. 목차 var, let, const const에 객체가 담긴 경우 var, let, const var let const 재선언 O X X 재할당 O O X 호이스팅 undefined로 초기화되어 메모리에 저장 초기화되지 않은 상태로 메모리에 저장 초기화되지 않은 상태로 메모리에 저장 유효 범위 (Scope) 함수 스코프 블록 스코프 블록 스코프 const에 객체가 담긴 경우 위 표에서도 알 수 있듯이 const는 재할당이 불가하다. 그런데 const에 담긴 객체는 수정이 가능하다. 이 경우에는 const에 ..
자바스크립트에서 객체를 다루려면 참조와 복사의 개념에 대해 반드시 알아야 한다. 객체의 참조, 얕은 복사, 깊은 복사의 차이점에 대해 자세히 알아보도록 하겠다. 요약 의미 방식 참조 (reference) 같은 객체를 참조 변수에 그대로 대입 얕은 복사 (shallow copy) 중첩된 객체를 복사했을 때, 가장 바깥 객체만 복사되며 내부 객체는 참조 관계를 유지. 깊은 복사와 참조의 중간 형식 스프레드 문법 사용 깊은 복사 (deep copy) 복사하여 새로운 객체를 생성 참조 관계가 생기지 않음 JSON 연산자 사용 참조 (Reference) 변수 array와 ref는 같은 객체를 참조하고 있기 때문에 어떤 걸 비교해도 true로 반환된다. 한쪽에서 변경하면 다른 쪽도 변경된다. 1 2 3 4 5 6 ..
ES6부터 구조분해 할당(destructuring assignment)이라는 문법이 등장했다. 말 그대로 어떤 배열이나 객체를 분해한 후 다시 할당하는 것이다. ES5와 ES6를 비교하며 알아보자. 목차 배열 구조분해 할당 객체 구조분해 할당 구조분해 할당 응용 1. 배열 구조분해 할당 1) 형식 ES5 배열의 모든 요소에 접근해 하나씩 변수에 담는 방식이다. 1 2 3 4 5 6 const fruits = ['apple', 'banana', 'kiwi']; const red = fruits[0]; const yellow = fruits[1]; const green = fruits[2]; console.log(red, yellow, green); // apple banana kiwi cs ES6 frui..