delete

You can 'delete' an object property.It has been known that 'delete' is a relatively slow operation (as of July 2017).


RESETRUNFULL
<!DOCTYPE html><html><body><script>

var iterationsTotal = 10000000;  // 10 millionvar o;var t1 = Date.now(),t2;for (let i=0; i<iterationsTotal; i++) {
   o = {a:1,b:2,c:3,d:4,e:5};
   delete o.a; delete o.b; delete o.c; delete o.d; delete o.e;}console.log ((t2=Date.now())-t1);  // 6135for (let i=0; i<iterationsTotal; i++) {
   o = {a:1,b:2,c:3,d:4,e:5};
   o.a = o.b = o.c = o.d = o.e = undefined;}console.log (Date.now()-t2);  // 205

</script></body><html>

<!DOCTYPE html><html><body><script>

var o = {a:1,b:2};delete o.a;console.log('a' in o);  // falseconsole.log(JSON.stringify(o));  // {"b":2}o.b=undefined;console.log('b' in o);  // trueconsole.log(JSON.stringify(o)); // {}

</script></body><html>

Be careful when you try to 'delete' an element from an array.


RESETRUNFULL
<!DOCTYPE html><html><body><script>

var a = [1,2,3];delete a[1];console.log(a); // [1,undefined,3]a.splice(1,1);console.log(a); // [1,3]

</script></body><html>

You can't delete a variable solely:


RESETRUNFULL
<!DOCTYPE html><html><body><script>

var a = 10;delete a;console.log(a);  // 10a = undefined;console.log(a);  // undefined

</script></body><html>