robię niektóre eksperymenty z tego szkodliwego linii javascript: var undefined = true;
var undefined = true;
Każda zmienna w JavaScript niezainicjowany ma wartość undefined
, która jest po prostu zmienną, która posiada szczególną wartość 'undefined'
, więc następujące powinien wykonać alert
:
var undefined = true,
x;
if (x) {
alert('ok');
}
Ale tak nie jest, a moje pytanie brzmi: dlaczego?
Z dalszych eksperymentów, próbowałem następujące:
var undefined = true,
x = undefined;
if (x) {
alert('ok');
}
Tym razem alert
jest wykonywany.
Moje pytanie brzmi ... ponieważ w pierwszym fragmencie kodu x
znajduje się undefined
(ponieważ nie został zainicjowany), dlaczego nie wykonano alert
? Najdziwniejsze jest to, że gdy wyraźnie stwierdzając, że x
jest undefined
(x = undefined
), przy czym alert
wykonany ...
Hehe; co by się stało, gdyby zmienna 'undefined' była wartością' undefined'? – Pindatjuh
@Pindatjuh: tak samo, jak gdyby zmienna miała dowolną inną nazwę. Nie ma nic szczególnego w zmiennej o nazwie 'undefined'. – dtb