Сообщение от Sweet
|
Конструкция typeof ... === 'undefined' используется почему, что undefined можно использовать как переменную.
|
И это только засоряет язык.
Итак, судя по всему можно писать:
var undefined; // это переменная с именем undefined, ее значение не определено (undefined)
undefined = 1; // значение переменной с именем undefined установлено в 1
if(x) {
ОШИБКА ВЫПОЛНЕНИЯ: ПЕРЕМЕННАЯ x НЕ ОБЪЯВЛЕНА НИГДЕ В КОДЕ!
}
if (typeof x == undefined) {
alert("переменная x не объявлена нигде в коде!");
}
if (x === undefined) {
alert("переменная x не объявлена нигде в коде!");
}
if (!window.x) {
alert("переменная x не объявлена нигде в коде!");
}
if (window.x === undefined) {
alert("переменная x не объявлена нигде в коде!");
}
var x = 2;
if (x) {
// ОСТОРОЖНО! ЕСЛИ x НЕ БЫЛА ОБЪЯВЛЕНА, ТО ОШИБКА ВЫПОЛНЕНИЯ: ПЕРЕМЕННАЯ x НЕ ОБЪЯВЛЕНА НИГДЕ В КОДЕ!
alert("переменная x объявлена, ее значение определено (не undefined) и ее значение не false и не null");
}
if (x != undefined) {
// ОСТОРОЖНО! ЕСЛИ x НЕ БЫЛА ОБЪЯВЛЕНА, ТО ОШИБКА ВЫПОЛНЕНИЯ: ПЕРЕМЕННАЯ x НЕ ОБЪЯВЛЕНА НИГДЕ В КОДЕ!
alert("переменная x объявлена, и ее значение не равно значению переменной с именем undefined");
}
if (x != 'undefined') {
// ОСТОРОЖНО! ЕСЛИ x НЕ БЫЛА БЫ ОБЪЯВЛЕНА, ТО ОШИБКА ВЫПОЛНЕНИЯ: ПЕРЕМЕННАЯ x НЕ ОБЪЯВЛЕНА НИГДЕ В КОДЕ!
alert("переменная x объявлена, и ее значение не равно строке 'undefined'");
}