为什么javascript(jquery)if语句不像php if语句那样工作?什么是解决方案?

时间:2013-09-22 07:19:38

标签: jquery if-statement

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;?

4 个答案:

答案 0 :(得分:3)

如果删除变量,javascript将面临错误(ReferenceError),因此它不会执行其余的代码伙伴。

答案 1 :(得分:2)

它不起作用的原因是因为你没有定义a变量,而你正在使用未定义的变量来破坏javascript。如果删除

if (a > 0) {
alert ("a > 0");
}

其余代码应该可以使用。

答案 2 :(得分:2)

如果未声明变量,则javascript会抛出ReferenceError,因此必须声明将在javascript评估中使用的任何变量。

根据the spec所说的

是bahaviour
  

如果是IsUnresolvableReference(V),则抛出ReferenceError异常。

所以是的,变量必须像var a, b一样声明,即使它没有用任何值初始化。

答案 3 :(得分:2)

如果删除a变量的定义,则会收到错误:

ReferenceError: a is not defined

并且您的脚本将被停止。