我试图将变量分为" UNDEFINED "和其他变量类型" OBJECT"我在第三个参数中存储了除法的值,当我检查第三个参数的类型时,它显示了数字。
有人可以解释我的问题。
<html>
<head>
HELLO!!!
<script>
var a;
var b = null;
var c = a / b;
console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
</script>
<body>
</body>
</head>
&#13;
答案 0 :(得分:4)
如果您将NULL
除以+0
,则jatscirpt 'undefined'
在js中被视为0
,那么您将获得NaN
类型{{1} }}。
您将number
与undefined
分开,以便获得null
最后你的表达将是
NaN
您可以检查结果是c = undefined/0; //It will return NaN
哪个类型是NaN
number
答案 1 :(得分:2)
应用multiplicative operator(* % /
之一)时,操作数首先使用ToNumber转换为数字。
在
的情况下var a;
var b = null;
var c = a / b;
然后when evaluating a / b
:
ToNumber(a) => ToNumber(undefined) => NaN
ToNumber(b) => ToNumber(null) => +0
然后在步骤1 when applying the /
operator:
如果任一操作数为NaN,则结果为NaN。
这样:
NaN / +0 => NaN
和NaN是Type Number。