I'm doing some experimenting with this malicious JavaScript line: var undefined = true;
Every uninitialized variable in JavaScript has the value of undefined
which is just a variable that holds the special value of 'undefined'
, so the following should execute the alert
:
var undefined = true,
x;
if (x) {
alert('ok');
}
But it doesn't, and my question is why?
On further experimentation, I tried the following:
var undefined = true,
x = undefined;
if (x) {
alert('ok');
}
This time, the alert
is executed.
So my question is...since in the first snippet x
holds undefined
(because it is not initialized), why didn't the alert
execute? The strange thing is that when explicitly stating that x
is undefined
(x = undefined
), the alert
executed...