Вычисление переменных
Вычисление переменных
Переменная или элемент массива, которым не присвоено значение, имеют значение undefined. Результат вычисления переменной, не имеющей присвоенного значения зависит от того, как она была объявлена:
- Если переменная без присвоенного значения была объявлена без использования var, вычисление приведёт к ошибке времени выполнения/runtime error.
-
Если переменная без присвоенного значения была объявлена с использованием var, вычисление даст значение undefined, или NaN - в числовом контексте.
Следующий код демонстрирует вычисление переменных, не имеющих присвоенного значения:
function f1() {
return y - 2;
}
f1() //Вызывает ошибку времени выполнения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