typeof 2未定义变量的结果

时间:2011-10-25 08:53:17

标签: javascript

我只是在javascript中测试“typeof”,实际上不知道为什么结果是这样的。

/ * ** * /

var cota,
    plouto;

alert(typeof plouto/cota); //NaN 

/ * ** * /

var cota,
    plouto;

alert(typeof (plouto/cota)); //number

/ * ** * /

var cota,
    plouto;

var flo = plouto/cota;

alert(typeof flo); //number 

2 个答案:

答案 0 :(得分:6)

第一个提醒NaN,因为首先执行typeof plouto,结果除以cota。结果不是数字,因此NaN。你可以想象它是这样的:

(typeof plouto) / cota

第二个将plouto除以cota,这不是一个数字(因为两个变量都是undefined),但NaN的类型实际上是{{1}这可能令人困惑!

第三个例子也是如此。

答案 1 :(得分:3)

typeof运算符优先于数学运算符,因此首先执行。

您从typeof plouto/cota得到的是typeof plouto,然后返回值除以cota - 导致非数字。在进行数学运算时,其中一个“参与者”不是数字,整个结果也将是NaN。

另外两种情况更简单:NaN的类型是数字。可以认为这相当于对象的null