Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 배열에 대한 삭제 연산자의 이상한 동작

<시간/>

JavaScript의 삭제 연산자는 실제로 개체 연산자(개체와 함께 사용)입니다.

그러나 배열은 JavaScript에서 인덱스된 객체이기도 하므로 배열과 함께 삭제 연산자를 사용할 수도 있습니다.

다음 리터럴 배열을 고려하십시오 -

const arr = ['a', 'b', 'c', 'd', 'e'];

예시

이제 다음 프로그램을 실행하고 예상 출력을 추측해 보겠습니다 -

const arr = ['a', 'b', 'c', 'd', 'e'];
delete arr[4];
console.log(arr);
console.log(arr.length);

출력

콘솔에서 이 프로그램의 출력은 -

[ 'a', 'b', 'c', 'd', <1 empty item> ]
5

출력 이해하기 -

배열의 인덱스 값 하나를 삭제했기 때문에 array.length가 5 대신 4를 출력할 것으로 예상했습니다. 그러나 삭제 연산자는 메모리 위치에서 값만 제거하고 위치는 여전히 배열에 의해 점유됩니다.

이것은 배열의 길이를 변경하지 않으며 우리는 여전히 배열에 5개의 요소가 있는 것을 볼 수 있습니다. 이제 하나의 메모리 위치가 비어 있습니다.