2016-09-20 103 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