2014-08-30 76 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