example:
x = "Hello";
delete x; // returns true, x is removed
var y = "Hello";
delete y; // returns false, y is not removed
I'm not interested in How this happens, I want to know why the language has this feature.
Strictly speaking the first x
is not a variable but a property of the global object. In browsers it's usually window
(so x = "Hello"
is equal to window.x = "Hello"
). You can't use delete
to remove variables but you can use it to remove object properties, and that's what it does in the first case.
This page has a lengthy explanation that spells out the why.
The short answer is delete is for properties, not variables. var y creates a variable. x = "something" creates a property of the global scope.
Also note that not all browsers handle delete the same. cough cough IE
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With