为什么`typeof false || undefined`返回“boolean”

时间:2016-09-23 10:17:28

标签: javascript

我刚刚在控制台中执行了以下操作:

typeof false || undefined // "boolean"

虽然我预计它会返回“undefined”,因为

typeof undefined // "undefined"

为什么它会返回“boolean”?如果以前评估为falsey值,OR运算符是否应该返回最后一个参数?那么false || undefined会返回undefinedtypeof会针对undefined执行吗?

3 个答案:

答案 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

最终输出将是 "布尔"