Переменная или элемент массива, которым не присвоены значения, имеют значение undefined. Результат вычисления переменной с неприсвоенным значением зависит от того, как она была объявлена:
Следующий код демонстрирует вычисление переменных, не имеющих присвоенного значения.
function f1() {
return y - 2;
}
f1() //Вызывает ошибку времени выполнения/runtime error
function f2() {
return var y - 2;
}
f2() //возвращает NaN
Вы можете использовать undefined для определения, имеет ли переменная значение. В следующем коде переменная input не имеет присвоенного значения, и оператор if вычисляется в true.
var input;
if(input === undefined){
doThis();
} else {
doThat();
}
Значение undefined ведёт себя как false, если используется с булевым значением. Например, следующий код выполняет функцию myFunction, поскольку элемент массива не определён:
myArray=new Array()
if (!myArray[0])
myFunction()
Если Вы вычисляете null-переменную, значение null ведёт себя как 0 в числовом контексте и как false - в булевом. Например:
var n = null
n * 32 //возвращает 0