변수의 값을 삭제하기 위해서
delete
문을 사용하는 경우가 있다.const obj = { a: 'test', }; console.log(obj.a); // 'test' delete obj.a; console.log(obj.a); // undefined
하지만 delete 문은 속도가 느리기 때문에 많은 데이터를 delete 한다면 실행 속도에 지장을 줄 수 있어 추천하지 않는다.
그래서 보통 지우고자 하는 변수에
undefined
를 대입하여 처리하는 것을 권장한다.undefined로 처리 시 obj.a라는 key 값은 남아있겠지만, value는
undefined
이기 때문에 Object.keys를 사용하지 않는 이상 크게 신경쓸 것이 없다.const obj = { a: 'test', }; console.log(obj.a); // 'test' obj.a = undefined; console.log(obj.a); // undefined console.log(typeof obj.a === typeof obj.b) // true console.log(Object.keys(obj)); // ["a"]
위는 아래 케이스들에 대한 벤치마크 성능이다.
delete
키워드를 사용하여 값을 제거했을 때
undefined
로 값만 변경 했을 경우
- 새로운 Object를 생성했을 경우