2016-09-20 137 views
0

有人可以爲我解釋此javascript行嗎?請解釋此java腳本行代碼

mouseWheelEventName = $.browser.mozilla ? 'DOMMouseScroll' : 'mousewheel', 

需要知道什麼「?」確實是'DOMMouseScroll':'mousewheel',特別是在該行末尾的「...」,爲什麼它不是「;」

謝謝。

回答

1

這是一個三元運算符,用作速記條件語句:

它是相同的話:

if ($.browser.mozilla) { 
    mouseWheelEventName = 'DOMMouseScroll'; 
} else { 
    mouseWheelEventName = 'mousewheel'; 
} 

=之前的第一塊是聲明變量(mouseWheelEventName)依賴在以下條件下。

=?之間的下一條是條件(是$.browser.mozilla是真的?)。

後立即?then部分(如果該條件爲真,則變量mouseWheelEventName設置爲字符串DOMMouseScroll)。

:是else之後(如果條件不成立,請將變量mouseWheelEventName設置爲字符串mousewheel)。

延伸閱讀: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

至於爲什麼會出現在它的結束一個逗號,我們需要看到一個更完整的代碼示例包括哪些遵循爲肯定地說。如果我不得不猜測,我會說代碼的作者是鏈接變量語句。這個答案可能會爲你帶來一些啓示:Javascript best practices, why to use comma to chain function/variable declarations?(查看所選答案)

+0

謝謝,謝謝! – Chuckv