JavaScript에서 객체의 특정 속성(property)을 제거하려면 delete 연산자를 사용합니다. delete는 객체에서 해당 속성과 그 값을 완전히 삭제하며, 삭제된 속성에 접근하면 undefined가 반환됩니다.
delete 연산자 기본 문법
delete object.propertyName;
예제 코드
아래 예제는 크리켓 선수 정보를 담은 객체에서 rank 속성을 삭제하는 과정을 보여줍니다.
실시간 데모
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var cricketer = {
name:"Amit",
rank:1,
points: 150
};
delete cricketer.rank;
document.getElementById("demo").innerHTML =
cricketer.name + " has " + cricketer.rank + " rank.";
</script>
</body>
</html>실행 결과
delete cricketer.rank;가 실행된 후 cricketer.rank는 더 이상 존재하지 않으므로, 화면에는 다음과 같이 출력됩니다.
Amit has undefined rank.
delete 연산자 사용 시 주의사항
- 변수나 함수에는 사용할 수 없습니다. delete는 오직 객체의 속성을 대상으로만 동작합니다.
- 내장 객체의 속성 삭제는 권장되지 않습니다. 성능 저하와 예기치 않은 동작을 유발할 수 있습니다.
- 속성 존재 여부 확인: 삭제 후 해당 속성이 실제로 제거되었는지 확인하려면
'rank' in cricketer처럼in연산자를 활용할 수 있습니다.
대안: 값만 초기화하고 싶다면
속성 자체를 완전히 제거하는 것이 아니라 값을 비우고 싶다면 null 또는 undefined를 할당하는 방법도 있습니다.
cricketer.rank = null; // 속성은 유지되지만 값이 null로 변경됨