【问题标题】:'if' statements don't function correctly'if' 语句不能正常工作
【发布时间】:2011-03-14 14:39:46
【问题描述】:
我正在编写一些涉及从多个函数跳转的 jQuery 代码。在一个函数中,“if”语句用于选择代码下一步将去哪里。 if 语句的条件是从前一个函数传递的变量的值。因此,为了澄清,一个函数将一个变量传递给另一个函数,然后该函数会转到另一个函数,该函数是根据它起源的函数来选择的。
这是我在 JSFiddle 中的代码:http://jsfiddle.net/VFVk7/
如您所见,当您单击任何按钮时,它会转到 If 语句中的所有可选功能,而不仅仅是一个。有谁知道为什么会这样?非常感谢!
【问题讨论】:
标签:
javascript
function
if-statement
【解决方案1】:
通过编写if(origin = 'go1'),您将'go1' 分配给origin 变量,并将该分配的结果(即字符串'go1')传递给if声明。
由于所有非空字符串在 Javascript 中都是“真实的”,这相当于if (true),并且所有if 语句都会执行。
您需要比较'go1' 与origin 变量,方法是编写if (origin === 'go1')。
总结
-
= 运算符为变量赋值
-
== 运算符执行松散比较(例如,true == '1'、8 == '8'、16 == '0x10'、false == [])。
-
=== 运算符执行严格比较。 (以上示例均不适用于===)
【解决方案2】:
你有类似的代码
if(origin = 'go1')
其中将 'go1' 分配给变量origin(并检查它是否为“真”——它是)。
试试吧:
if(origin == 'go1')
比较而不是分配。
【解决方案3】:
常见问题。在 Java 中它会给出一个编译错误,在 Javascript 中它会工作得很好,可能不是你想要的那样。 = 登录 Javascript 不执行相等操作。