2014-09-28 136 views
0

所以我使用了一個在線JavaScript優化器,它對我的​​新的IF語句做了一些奇怪的事情。這是什麼樣的聲明?

{1===a?window.addEventListener("scroll",turnOff):0===a&&window.removeEventListener("scroll",turnoff)} 

這是什麼?請幫助我瞭解它的各個部分。

+1

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator – jayelm 2014-09-28 23:55:00

+1

這是一個[條件( '三元')運算](HTTPS ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)。 – 2014-09-28 23:55:05

回答

1

三個等號是嚴格比較運算符的表示。與通常的雙等號不同,使用===type與正在比較的表達式的值進行比較。類型和值必須相同才能將語句評估爲true。

?:if語句的簡寫形式。當1===a爲真時,評估問號後面的語句。否則,評估冒號後面的語句。這個簡寫版本的if聲明被稱爲有條件(或三元)運算符。

+0

謝謝你,這些都是很好的答案,但是你對我來說很愚蠢XD那麼你能告訴我&&的目的嗎?爲什麼是0 === a &&而不是0 === a? ? – Sebastian 2014-09-29 00:11:50

+0

@Sebastian:閱讀初學者的教程,您將學習所有關於基本JavaScript運算符的知識。 – 2014-09-29 00:16:27

+0

我做到了:3我知道它的顯然和(和)運營商,但它在這個聲明中的目的是什麼。 Andddd,因爲我正在輸入這個我剛剛得到它.. lmao。但是爲了安全起見,它也檢查是否0 === 1,那麼&&也在說如果它被證明是真的,也要這樣做。否則,這兩個陳述都沒有使 – Sebastian 2014-09-29 00:21:15

0

The?運算符只用作if。

if(a){ 
    b; 
} else { 
    c; 
} 

等於

a ? b : c; 
-1

我不記得名字,但它的工作作爲一個if語句。它的結構如下:

condition ? code if true : code if false 
0

它被稱爲三元運算符。

window.addEventListener("scroll",turnOff)

和第二如果假:它,如果該條件爲真比較條件

if a === 1

並返回第一個結果

0===a&&window.removeEventListener("scroll",turnoff)

此行的代碼執行兩件事,將等於0並刪除事件監聽河

參見this tutorial

相關問題