Клиентский JavaScript 1.3

         

Вычисление переменных


Переменная или элемент массива, которым не присвоено значение, имеют значение 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



Содержание раздела