2013-01-23 135 views
-2

我並不是真正的JavaScript專家。 我看到了這樣的語法: a != b && (c = b); 有人可以向我解釋這個嗎?Javascript語法:a!= b &&(c = b)

在此先感謝

+2

最基本的教程會告訴你這個...雖然,它可能是一個typoo? –

+0

對不起,但我的代碼有點,我從來沒有看到邏輯AND做一個如果...如果你可以鏈接我一個教程,你找到它,我將不勝感激! – Gadcam

+0

查找'短路評估'。 –

回答

3

如果a != b,則將b指定爲c,如果c爲真,則返回c

if (a != b) { 
    c = b; 
} 

該代碼使用&&操作者對流動的短路:

+0

感謝您的幫助! (我也感謝其他人......) – Gadcam

2

如果a不等於b,然後分配給bc

這裏的右側將不會評估,如果左側不是true

0

如果變量a不等於變量b,分配可變b到可變c

0

作爲它而應被寫入控制(即表達式的第二部分只在第一部分爲真時才被評估),然後它使用這樣一個事實:賦值也是一個表達式,可以在表達式中進行賦值,並忽略表達式的值。

1

在您的示例中,如果a != b然後將b指定爲c,結果將爲。沒有處理對c是否真的評估(在本例中)。

由於操作員短路,此聲明的作用類似於簡短的if聲明。

當使用邏輯AND &&時,這意味着如果AND的左側是false,那麼AND的右側將不會被評估。所以邏輯AND可以被濫用來形成一種簡短的語句if。如果左手邊的計算結果爲true,那麼右手邊將不會被評估(因爲它不會改變整體結果),所以對於邏輯OR也會發生相反的情況。你會發現這個運算符在C,JavaScript和Java等語言中短路古怪。

相關問題