Код JavaScript
var a = 0;//remove latter
var b = 1;
if (a > 0) {
alert ("a > 0");
}
if (b > 0) {
alert ("b > 0");
}
все работы (alert ("b > 0");
).
Но если удалить var a = 0;
, затем второй, if
не работает.
Итак, вывод, если для первого, if
нет переменной, тогда второй, if
не работает.
Что такое решение? Всегда задавать переменные javascript
- jquery
? Например, если нет var a, тогда var a = 0 ;?
Если переменная не объявлена, javascript выдает ReferenceError, поэтому любая переменная, которая будет использоваться при оценке javascript, должна быть объявлена.
Это бахавиус согласно спецификации, которая гласит:
Если IsUnresolvableReference (V), выведите исключение ReferenceError.
Итак, да, переменные должны быть объявлены как var a, b
хотя они не инициализированы никаким значением.
Если вы удаляете переменную, javascript сталкивается с ошибкой (ReferenceError), поэтому он не будет выполнять оставшуюся часть кода.
Причина, по которой это не работает, состоит в том, что у вас больше нет a
переменной, и вы нарушаете javascript с неопределенной переменной. Если вы удалите
if (a > 0) {
alert ("a > 0");
}
остальная часть кода должна работать.
Если удалить определение a
переменной, вы получите сообщение об ошибке:
ReferenceError: a is not defined
и ваш скрипт будет остановлен.