所有
在if语句片段" if(window.addEventListener)"是什么 window.addEventListener解析为。我相信它是一个布尔值,但它什么时候是真的"真的"什么时候是"假"。我已经研究了一个星期,但没有用。
我正在通过自学来学习JavaScript,所以请耐心等待。
答案 0 :(得分:1)
任何类似的if
表达式 - 也就是说,没有显式比较的表达式 - 隐式地将表达式值转换为布尔值。 JavaScript中的规则是null
,undefined
,0
,""
,NaN
或false
以外的任何内容都被视为{{1 }}
因此,像这样测试true
是一种检查window.addEventListener
对象上是否存在该属性(不是undefined
)的方法。
答案 1 :(得分:1)
window.addEventListener
都指的是一个函数。在JavaScript中,任何值都可以强制为布尔值。结果是false
(0
,""
,NaN
,null
,undefined
,当然还有false
- “虚假”值)或true
(对于所有其他值 - “真实”值)。因此,如果addEventListener
上存在window
并且具有真值(函数引用是真实的),则代码将分支到if
的正文中。如果没有(过时版本的Internet Explorer没有它,他们有Microsoft的前身称为attachEvent
),查找属性将导致undefined
,这是假的。
答案 2 :(得分:0)
仅供参考,javascript使用'Falsy'值,这是在布尔上下文中计算时转换为false的值。
参考Falsy