1.typeof 返回值有六种可能: "number", "string","boolean" ,"object", "function" 和 "undefined "函数
2.关于NAN的理解3d
NaN, 它是用来表示是否属于number类型的一种状态: 是或否。而不是一个确切的值。blog
NaN值通常会在什么状况下出现呢?通常有两种状况:字符串
(1) 一个表达式中若是有减号(-)、乘号(*) 或 除号(/) 等运算符时,JS引擎会在计算以前试图将运算符两边的变量转化为number类型,若是转化失败,表达式将返回NaNstring
(2) 直接使用 parseInt, parseFloat 或 Number 将一个非数字的值转化为数字时,表达式返回NaNio
"abc"- 3// NaNfunction
parseInt("abc")// NaN变量
parseFloat("abc")//NaNobject
Number("abc")//NaNim
Number("123abc");//NaN
parseInt("123abc");//123
parseInt("123abc45");//123
parseFloat("123.45abc");//123.45
所以,当一个字符串不能被Number,parseInt,parseFloat成功转换时,就返回NaN,表示该字符串没法被识别为数字类型,这是一个异常状态,并非一个确切的值。
因此 NaN != NaN , 由于它是一个异常状态,而不是一个确切的值。
另外,与NaN相关的还有一个函数,即 isNaN() , 它的做用是检查一个字符串是否能被Number()成功转换,即强制转化整个字符串。
isNaN("123")//false 能转换
isNaN("abc")//true 不能转换
isNaN("123abc")//true 部分可转换,但总体不能转换
isNaN("123.45abc")//true 部分可转换,但总体不能转换
3.关于number