Dee*_*ven 4 javascript typeof operator-precedence
if (typeof foo !== 'undefined') {
// Now we know that foo is defined, we are good to go.
}
Run Code Online (Sandbox Code Playgroud)
该typeof计算结果为true或false基于该变量是否foo被定义或没有.
但是,说,如果foo !== 'undefined'计算结果为true,那么typeof的true应求'boolean'.为什么评估true或false?
小智 6
因为typeof和不等式运算符的优先级规则定义该表达式被解析为
(typeof foo) !== 'undefined'
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅有关运算符优先级的MDN页面.typeof优先16; 不等式优先级10.优先级越高typeof意味着它与其操作数"更紧密地"绑定.
那么,为什么你的代码中有未定义的变量?
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |