JavaScript_study

[JavaScript] 자바스크립트 배열 수정 타입 에러 (const, let)

xogus-blog 2025. 4. 12. 20:24

자바스크립트에서는 배열을 어떤 타입으로 생성하는 냐에 따라서 수정 여부가 달라진다.
 
먼저 배열을 생성해 보자.

//배열 생성
const fruits = ["apple", "orange", "peach"];

 
배열의 요소를 수정하는 코드는 크게 두 가지가 있다.

fruits = ["apple", "kiwi", "peach"]
fruits[2] = "mango";

 
하지만 이 코드를 실행해 보면,

TypeError: Assignment to constant variable.

 
이러한 에러가 발생한다.
 
그 이유는 배열 생성을 const로 생성했기 때문
 
const의 경우 변수 자체를 변경할 수 없는 바인딩된 참조이다.
때문에 배열의 요소(객체)를 각각 수정할 수는 있지만, 배열 자체를 통째로 변경하는 것은 불가능하다.


따라서 const로 생성된 배열은

fruits[2] = "mango";

이렇게 직접 객체에 접근해 수정하고,
 
통으로 배열 자체를 바꿀 일이 많다면 const 대신 let을 사용해서 배열을 선언하자.
 
[예시]

//배열 생성
let fruits = ["apple", "orange", "peach"]; //let으로 선언

//배열 요소 수정
fruits = ["apple", "kiwi", "peach"];   //배열 통째로 수정
fruits[2] = "mango";  //접근 수정

//배열 출력
console.log(fruits);

 
[결과]