Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 7월.
**delete**는 객체의 속성을 제거합니다. 속성의 값이 객체이고 더 이상 그 객체에 대한 참조가 없다면, 해당 객체는 결국 자동으로 메모리에서 해제됩니다.
참고 : 구문은 delete 연산자 다음에 더 넓은 범위의 표현식을 허용하지만, 위의 형태들만 의미 있는 동작을 이끌어냅니다.
객체의 이름 혹은 객체를 평가하는 표현식.
property삭제할 속성.
속성이 자체 구성 불가능한 속성인 경우를 제외하고 모든 경우에 true를 반환하며, 이 경우에는 비 엄격 모드에서 false가 반환됩니다.
속성이 자체 구성 불가능하면 엄격 모드에서 발생합니다.
ReferenceError만약 object가 super면 발생합니다.
delete 연산자는 typeof와 같은 다른 단항 연산자와 동일한 우선순위를 갖습니다. 따라서 더 높은 우선순위의 연산자에 의해 형성된 어떤 표현식도 허용합니다. 그러나 다음 예제에서는 엄격 모드에서 초기 구문 오류를 일으킵니다.
클래스는 자동으로 엄격 모드로 작동하며, private 속성은 클래스 본문 내에서만 참조될 수 있기 때문에 private 속성은 절대 삭제될 수 없습니다. delete identifier는 식별자가 전역 객체의 구성 가능한 속성을 참조한다면 작동할 수 있지만, 이 형식을 피하고 gloablThis를 접두사로 사용해야 합니다.
다른 표현식들도 허용되지만, 이 예시는 의미 있는 동작을 유발하지 않습니다.
delete 연산자는 객체에서 주어진 속성을 삭제합니다. 성공적으로 삭제하면 true를 반환하고, 실패하면 false를 반환합니다. 일반적인 믿음(아마도 C++의 delete)와 같은 다른 프로그래밍 언어들 때문에)과 달리, delete 연산자는 메모리를 직접 해제하는 것과 전혀 관련이 없습니다. 메모리 관리는 참조를 끊는 방식으로 간접적으로 이루어집니다. 자세한 내용은 메모리 관리 페이지를 참조하세요.
아래 시나리오를 고려하는 것이 중요합니다.
참고 : 아래 예시는 비 엄격 모드에서만 가능한 기능을 사용합니다. 예를 들어, 암묵적으로 전역 변수를 생성하거나 식별자를 삭제하는 기능은 엄격 모드에서 금지되어 있습니다.
다음 예제에서 객체의 자신의 속성을 삭제하는데, 동일한 이름의 속성이 프로토타입 체인에 존재합니다.
배열 요소를 삭제해도 length는 영향을 받지 않습니다. 심지어 배열의 마지막 요소를 삭제하더라도 마찬가지입니다.
delete 연산자가 배열 요소를 삭제하면, 그 요소는 더 이상 배열에 존재하지 않습니다. 다음 예제에서 trees[3]은 delete로 삭제되었습니다.
이렇게 하면 빈 슬롯이 있는 희소 배열이 생성됩니다. 배열요소가 존재하지만 값이 undefined이기를 원한다면 delete 연산자 대신에 undefined를 사용해야 합니다. 다음 예제에서 trees[3]에 undefined를 할당하지만 여전히 배열 요소로 존재합니다.
대신에 배열의 내용을 변경하여 배열 요소를 삭제하길 원한다면 splice()를 사용하면 됩니다. 다음 예제에서 trees[3]은 splice()을 사용해서 완전히 배열에서 삭제됩니다.
속성이 구성 불가능일 때, delete는 아무런 효과가 없으며 false를 반환합니다. 엄격 모드에서는 TypeError를 발생합니다.
var는 delete 연산자로 삭제할 수 없는 구성 불가능 속성을 생성합니다.
엄격 모드에서 예외를 발생시킬 것입니다.
전역 속성이 구성 가능하다면(예를 들어, 직접 속성 할당을 통해), 삭제를 할 수 있고 이후에 해당 속성을 전역 변수로 참조하면 ReferenceError가 발생합니다.
| ECMAScript® 2027 Language Specification # sec-delete-operator |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025년 7월 24일 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.