ProgrammerAtWork ProgrammerAtWork - 1 year ago 56
Javascript Question

Why can't I delete javascript values declared with var?


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.

Answer Source

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.