请解释这个java脚本代码行

时间:2016-09-20 16:05:14

标签: javascript

有人可以为我解释这个javascript行吗?

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

需要知道"?"是的,以及什么' DOMMouseScroll' :' mousewheel',特别是","在行尾......为什么不是&#34 ;;"

谢谢。

1 个答案:

答案 0 :(得分: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?(见选择的答案)