1

对于下面这些条件表达式之间的区别,我有点困惑:

if( 1 == a) { 
   //something
}

if( a == 1 ) {
   //something
}

我在我下载的一些脚本中看到了上面的那个,我想知道它们之间有什么区别。

4

4 回答 4

1

constant == variable语法通常用于避免错误输入===. 当然,当你有constant == function_call_retuning_nothing_modifiable.

除此之外没有区别,除非您有一些奇怪的运算符覆盖。

于 2012-10-08T07:32:00.857 回答
1

许多编程语言允许将赋值a = 1用作表达式,从而使以下代码在语法上有效(假设整数可用于条件,例如在 C 或许多脚本语言中):

if (a = 1) {
    // something
}

这是很少需要的,并且可能导致意外行为。如果1 == a使用,则不会发生此错误,因为1 = a它是无效的。

于 2012-10-08T07:35:13.373 回答
1

好吧,我不确定这个技巧。一般来说,我们可以说等号是可交换的。因此,a = b 意味着 b = a。但是,当您有 == 或 === 时,这在某些情况下不起作用,例如当您在右侧有一个范围时:5 === (1..10) vs. (1..10) === 5。

于 2012-10-08T07:37:54.120 回答
1

前者被创造了一个尤达条件

使用 if(constant == variable) 而不是 if(variable == constant),例如 if(1 == a)。因为这就像说“如果天空是蓝色的”或“如果男人是高的”。

于 2012-10-08T08:38:57.940 回答