Delete문을 사용하지 말아야 하는 이유

2020년 07월 22일
변수의 값을 삭제하기 위해서 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"]
 
notion image
위는 아래 케이스들에 대한 벤치마크 성능이다.
  1. delete 키워드를 사용하여 값을 제거했을 때
  1. undefined로 값만 변경 했을 경우
  1. 새로운 Object를 생성했을 경우