Javascript:比较运算符中的操作数顺序

时间:2016-06-26 06:41:08

标签: javascript performance comparison

为什么我看到很多人写作

有特定的原因
if(1 === a) {...}

而不是

if(a === 1) {...}

我给出了一个答案,其中我写了类似Array === obj.constructor的内容,当有人问我经常看到人们这样写而不是obj.constructor === Array时。

所以我使用哪种方式真的很重要?

1 个答案:

答案 0 :(得分:6)

它是yoda conditions

  

Yoda条件如此命名是因为条件的字面值首先出现,而变量出现在第二位。例如,以下是Yoda条件:

if ("red" === color) {
    // ...
}
  

这被称为Yoda条件,因为它读作“红色是颜色”,类似于星球大战人物尤达所说的方式。与安排操作数的其他方式相比:

if (color === "red") {
    // ...
}
  

这通常是“颜色为红色”,这可以说是描述比较的更自然的方式。

     

Yoda条件的支持者强调,不可能错误地使用=而不是==因为您无法分配字面值。这样做会导致语法错误,并且您会在早期被告知错误。因此,在早期编程中,这种做法非常普遍,但尚未提供工具。

     

Yoda条件的反对者指出,工具使我们成为更好的程序员,因为工具会错误地使用=而不是==(ESLint会为你捕获这个)。因此,他们认为,模式的效用并不会超过代码在使用Yoda条件时所能达到的可读性。