js
JS - delete 연산자
객체의 프로퍼티나 배열의 요소를 삭제하는 연산자가 delete 입니다. delete 연산자는 변수나 배열 요소, 객체의 프로퍼티를 삭제합니다. 삭제에 성공하면 true를, 아니면 false를 반환합니다.
배열이나 객체의 요소를 제거하는 경우 객체나 배열의 값만 제거될 뿐 인덱스는 제거않고 그대로 존재하게 됩니다. 다시 말해 삭제된 배열의 인댁스는 그대로 유지되지만 값이 없는 배열 요소가 됩니다.
이러한 현상은 객체에도 동일하게 나타납니다. 스토리지에서도 delete 연산자를 사용할 수 있습니다.
<script>
/*
배열에 대한 예제
*/
var arr = ['1', '2', '3'];
console.log(delete arr[1]);
// true
console.log(arr);
// ["1", empty, "3"]
/*
명시적으로 선언된 변수는 삭제 불가
*/
var str = 1;
console.log(delete str);
// false
console.log(str);
// 1
str2 = 2;
console.log(delete str2);
// true
console.log(str2);
// 오류 발생
</script>
배열이나 객체의 요소를 제거하는 경우 객체나 배열의 값만 제거될 뿐 인덱스는 제거않고 그대로 존재하게 됩니다. 다시 말해 삭제된 배열의 인댁스는 그대로 유지되지만 값이 없는 배열 요소가 됩니다.
배열의 인덱스까지 제거하려면 pop() 이나 shift() 같은 메소드를 이용해야 합니다.
<script>
var arr = ['1','2','3'];
// 두 번째 요소의 값을 제거합니다.
delete arr[1];
document.write(arr[0]);
// 1
document.write(arr[1]);
// undefined
document.write(arr[2]);
// 3
</script>
이러한 현상은 객체에도 동일하게 나타납니다. 스토리지에서도 delete 연산자를 사용할 수 있습니다.
<script>
var storage = localStorage;
storage.setItem('name', '하보니');
console.log(storage.getItem('name'));
// 하보니
delete storage.name;
console.log(storage.getItem('name'));
// null
</script>
0 댓글