我刚刚在控制台中执行了以下操作:
typeof false || undefined // "boolean"
虽然我预计它会返回“undefined”,因为
typeof undefined // "undefined"
为什么它会返回“boolean”?如果以前评估为falsey值,OR
运算符是否应该返回最后一个参数?那么false || undefined
会返回undefined
而typeof
会针对undefined
执行吗?
答案 0 :(得分:8)
您未观察到运营商优先权!
> typeof false || boolean // (typeof false) || boolean
"boolean"
> typeof (false || boolean)
"undefined"
答案 1 :(得分:0)
OR
运算符返回左参数,只要它不是假的。
在你的例子中,我们得到了这个:
(typeof false) || undefined
typeof false
会返回"boolean"
,这不是假的,所以会返回而不是undefined
。
答案 2 :(得分:0)
考虑代码:
typeof false || undefined
typeof false
将返回" boolean" ,所以它会成为
"boolean" || undefined
最终输出将是 "布尔"