배열을 지워야 할 때 많은 사람들이 다음과 같은 방법을 사용합니다.
a = [];
자바스크립트의 변수 저장 방식은 참조형과 직접량으로 나누어진다는 것을 알고 있습니다. 배열은 객체, 즉 참조 유형에 속하며 변수 포인터 주소를 참조합니다. 이렇게 설계된 이유는 메모리를 절약하기 위한 것입니다.
위의 배열 비우기 방법은 새 배열을 직접 할당하면 이전에 참조한 배열이 해제되지 않을 수 있습니다(다른 참조도 있음). 예를 들면 다음 코드와 같습니다.
var a = [2,3]; >var b = a;
a = [];
console.log(b);
이때 a와 b는 동일한 배열이 아니며 지워집니다. .a와 b는 여전히 이전 참조 주소를 가리킵니다. 의도적으로 수행하지 않는 한 숨겨진 위험이 있습니다.
따라서 배열을 비우는 가장 좋은 방법은 길이를 0으로 설정하는 것입니다. 즉,
a.length = 0
JS8.IN™에서 재인쇄됨