2014-08-30 35 views
0

我重构了一些JavaScript代码和碰到这个表达式:这2个javascript表达式有什么区别?

false === options.onSubmit.call(this) 

会是什么把false第一目的是什么?这个表情和这个表情有区别吗?

options.onSubmit.call(this) === false 
+4

http://en.wikipedia.org/wiki/Yoda_conditions – VisioN 2014-08-30 15:42:51

回答

2

什么,我想,最好的好处是,你可以不小心做assignment,而不是compare。它基本上与==检查到位。

当你想比较像波纹管

someVariable === false 

OR

someVariable == false 

可能是偶然

someVariable = false 

false = someVariable 
两个值

将导致错误ReferenceError:作业中的无效左侧。所以你会摆脱那个错误。

+0

除了这种方法比相反的方式更具可读性。 – VisioN 2014-08-30 15:48:03

+0

@VisioN是的,我同意你的看法,但每件事情都有自己的利弊。 – Mritunjay 2014-08-30 15:49:12

+0

他们都会因为这个例子而导致相同的错误。 – 2014-08-30 16:17:28