'if'语句无法正常运行

时间:2010-07-12 01:15:42

标签: javascript function if-statement

我正在编写一些涉及从多个函数跳转的jQuery代码。在一个函数中,'if'语句用于选择代码接下来的位置。 if语句的条件是从前一个函数传递的变量的值。因此,为了澄清,函数将一个变量传递给另一个函数,然后该函数转到另一个函数,该函数是根据它源自的函数选择的。

这是我在JSFiddle中的代码:http://jsfiddle.net/VFVk7/

正如您所看到的,当您单击任何按钮时,它将转到If语句中的所有可选功能,而不仅仅是一个。有谁知道为什么会这样?非常感谢!

3 个答案:

答案 0 :(得分:10)

通过编写if(origin = 'go1'),您 'go1'分配给origin变量,并传递该分配的结果(即字符串{{1} {}}语句。{} 由于所有非空字符串在Javascript中都是“真实的”,因此这相当于'go1',并且所有if语句都会执行。

您需要通过撰写if (true) if'go1'变量进行比较。

摘要

  • origin运算符为变量赋值
  • if (origin === 'go1')运算符执行松散比较(例如===true == '1'8 == '8')。
  • 16 == '0x10'运算符执行严格比较。 (上述示例均不适用于false == []

答案 1 :(得分:6)

你有像

这样的代码
if(origin = 'go1')

'go1'分配给变量origin(并检查它是否为“true” - 它是什么)。
请尝试改为:

if(origin == 'go1')

比较而不是分配

答案 2 :(得分:-2)

常见问题。在Java中它会产生编译错误,在Javascript中它可以正常工作,可能不是你想要的方式。 =登录Javascript不执行相等操作。