【发布时间】:2016-09-20 16:05:14
【问题描述】:
有人可以为我解释这个 javascript 行吗?
mouseWheelEventName = $.browser.mozilla ? 'DOMMouseScroll' : 'mousewheel',
需要知道什么“?”是什么,以及 'DOMMouseScroll' : 'mousewheel' 是什么意思,特别是在行尾的“,”......为什么不是“;”
谢谢。
【问题讨论】:
标签: javascript
有人可以为我解释这个 javascript 行吗?
mouseWheelEventName = $.browser.mozilla ? 'DOMMouseScroll' : 'mousewheel',
需要知道什么“?”是什么,以及 'DOMMouseScroll' : 'mousewheel' 是什么意思,特别是在行尾的“,”......为什么不是“;”
谢谢。
【问题讨论】:
标签: javascript
这是一个三元运算符,用作简写条件语句:
这和说的一样:
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?(请参阅所选答案)
【讨论】: