[英]JavaScript - (window.addEventListener)
所有
在if语句片段“ if(wind.addEventListener)”中,window.addEventListener解析为什么。 我相信它是一个布尔值,但何时为“ true”,何时为“ false”。 我已经研究了一个星期,但无济于事。
我正在通过自学来学习JavaScript,所以请多多包涵。
任何这样的if
表达式(即没有显式比较的表达式)都会将表达式值隐式转换为布尔值。 JavaScript中的规则是将null
, undefined
, 0
, ""
, NaN
或false
都视为true
。
因此,像这样测试window.addEventListener
是一种检查window
对象上是否存在该属性(不是undefined
)的方法。
所有现代浏览器中的window.addEventListener
均指一个函数。 在JavaScript中,任何值都可以强制为布尔值。 结果为false
(对于0
, ""
, NaN
, null
, undefined
,当然为false
(“虚假”值)或true
(对于所有其他值-“ truthy”值)。 因此,如果window
存在addEventListener
并具有真实值(函数引用为真实),则代码将分支到if
的主体中。 如果不是这样(如果Internet Explorer的过时版本没有它,则它们具有Microsoft的前身叫attachEvent
),查找该属性将导致undefined
,这是虚假的。
仅供参考,javascript使用“假”值,该值是在布尔上下文中求值时会转换为false的值。
参考虚假
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.