Javascript 带比较运算符的布尔表达式的类型
Javascript 带比较运算符的布尔表达式的类型,javascript,operator-precedence,typeof,Javascript,Operator Precedence,Typeof,typeof根据变量foo是否定义,计算结果为true或false 但是,如果foo!='未定义的“计算为true,则true的typeof应计算为'boolean'。 为什么它的计算结果是true或false?因为typeof和inquality操作符的优先级规则定义该表达式被解析为 if (typeof foo !== 'undefined') { // Now we know that foo is defined, we are good to go. } 有关更多信息,请参阅
typeof
根据变量foo
是否定义,计算结果为true
或false
但是,如果foo!='未定义的“
计算为true
,则true
的typeof
应计算为'boolean'
。
为什么它的计算结果是
true
或false
?因为typeof
和inquality操作符的优先级规则定义该表达式被解析为
if (typeof foo !== 'undefined') {
// Now we know that foo is defined, we are good to go.
}
有关更多信息,请参阅<代码>类型的优先级为16;质量优先。typeof
的优先级越高,意味着它与操作数的“绑定”越紧密
顺便问一下,为什么代码中有未定义的变量?作为参考,typeof(typeof foo!=='undefined')
会按照OP的想法执行。
(typeof foo) !== 'undefined'