【发布时间】:2015-08-23 06:11:26
【问题描述】:
在the MDN page for the wheel event 上,有一个代码示例,其中在第 30-31 行包含以下内容:
function( originalEvent ) {
!originalEvent && ( originalEvent = window.event );
第二行似乎采用了一些捷径,这些捷径依赖于 JavaScript 在内部评估布尔表达式的方式。如果我理解正确,它的目的是在没有传递参数的情况下将originalEvent 设置为window.event。其作用与以下相同:
if (!originalEvent) {
originalEvent = window.event;
}
或
orginalEvent = (originalEvent) ? orginalEvent : window.event;
使用MDN网站的建设有什么好处?
【问题讨论】:
-
根据您的问题,您似乎拥有自己回答这个问题的所有工具:) 由于您显示的所有三个版本的代码都有相同的结果,因此它开始归结为:可读性、代码优化和开发者偏好。
-
你的最后一行代码与其他两行不等价,仅作记录。
-
@Blindy:你能解释一下最后一行有何不同吗?
-
当然,即使
originalEvent中有值,您也可以执行代码。在您看来,它并没有改变代码的含义,但并不等同。
标签: javascript lazy-evaluation boolean-expression