JavaScript如何处理数字(未定义)?
最近,当我发现JavaScript如何处理数字(未定义)?,javascript,types,undefined,v8,nan,Javascript,Types,Undefined,V8,Nan,最近,当我发现Number(未定义)等于NaN时,出于厌倦,我考虑定义一个函数来复制isNaN的功能,但是如果你这样做了Number(未定义)==NaN你会得到false` 我甚至尝试了(typeof Number(未定义))==(typeof NaN),返回true JavaScript在这里做什么 常数NaN永远不等于任何东西,包括NaN。NaN的typeof的值是“number”,因为NaN是一个数字常量 Number(未定义)的值为NaN。您可以使用isNaN()来验证,或者只需: va
Number(未定义)
等于NaN
时,出于厌倦,我考虑定义一个函数来复制isNaN的功能,但是如果你这样做了Number(未定义)==NaN你会得到
false`
我甚至尝试了(typeof Number(未定义))==(typeof NaN)
,返回true
JavaScript在这里做什么 常数
NaN
永远不等于任何东西,包括NaN
。NaN的typeof
的值是“number”,因为NaN
是一个数字常量
Number(未定义)
的值为NaN
。您可以使用isNaN()
来验证,或者只需:
var x = Number(undefined);
if (x !== x) alert("It's NaN!");
(NaN==NaN)===false
同样,在调试诸如(数字类型(未定义))===(NaN类型)
之类的东西时,只需分别记录===
的两侧就可以了,您会看到两者都返回“数字”
。(是的,typeof NaN==“number”
)@Cerbrus是的,我知道typeof NaN==“number”
,但我不知道NaN
从来都不等于任何东西。p自己找出了最后一行:“当我发现时,number(未定义)
等于NaN
”;-)@也许他会相信我而不是他自己:)说得好,有时候,外面的“是的,没错”会有帮助!要补充的是,虽然NaN的类型是,但是NaN的实例是,false。JavaScript WAT@tkoomzaaskz这是真的,但是17个数字实例
也是false
。NaN
和17
都不是对象实例。