我在chrome和firefox控制台上玩除零。当我得到两个不同的输出取决于它是否用括号包围操作时,我感到很惊讶。
> typeof 1/0
<- NaN
> typeof (1/0)
<- "number"
当然,我们知道NaN的类型是“数字”,尽管它是“Notanumber”。
console.log(typeof 1/0);
//outputs NaN
console.log(typeof (1/0));
//outputs number
有人可以解释这种差异吗?
答案 0 :(得分:1)
typeof
运算符紧紧绑定,所以
typeof 1/0
被解释为
(typeof 1) / 0
从数字和字符串之间的任何尝试除法运算中得到NaN
。
答案 1 :(得分:0)
我认为Chrome正在评估typeof 1,然后将该部门评为零,这就是为什么它是NaN。在另一种情况下,它评估整个1/0等于无穷大。