● 배열의 요소 수정하기
배열 맨 앞에 요소를 추가하는 예제를 살펴볼 때 우연히 요소를 수정하는 방법을 알게 됐었죠? 다음처럼 원하는 인덱스에 바꿀 값을 넣으면 됩니다.
const target = ['가', '나', '다', '라', '마'];
target[3] = '카';
target; // (5) ['가', '나', '다', '카', '마']
네 번째 요소(인덱스 3)를 ‘라’에서 ‘카’로 수정했습니다. 그런데 배열의 마지막 요소를 수정할 때는 주의해야 합니다. 앞에서 마지막 요소를 찾을 때 at(-1)을 사용했습니다. 이와 마찬가지로 마지막 요소이니 target.at(-1) = '카'라고 생각할 수 있는데, 이렇게 작성하면 Uncaught ReferenceError: Invalid left-hand side in assignment 에러가 발생합니다. 배열의 마지막 요소를 ‘마’에서 ‘카’로 수정하고 싶다면 다음과 같이 해야 합니다.
const target = ['가', '나', '다', '라', '마'];
target[target.length - 1] = '카';
target; // (5) ['가', '나', '다', '라', '카']
at()은 위치가 아닌 값을 나타냅니다. 따라서 target.at(-1)은 ‘마’입니다. 즉, target.at(-1) = '카'는 '마' = '카'라는 엉뚱한 식이 됩니다.