js类型
1.typeof 返回值有六种可能: "number", "string","boolean" ,"object", "function" 和 "undefined "
2.关于NAN的理解
NaN, 它是用来表示是否属于number类型的一种状态: 是或否。而不是一个确切的值。
NaN值一般会在什么情况下出现呢?一般有两种情况:
(1) 一个表达式中如果有减号(-)、乘号(*) 或 除号(/) 等运算符时,JS引擎会在计算之前试图将运算符两边的变量转化为number类型,如果转化失败,表达式将返回NaN
(2) 直接使用 parseInt, parseFloat 或 Number 将一个非数字的值转化为数字时,表达式返回NaN
"abc"- 3// NaN
parseInt("abc")// NaN
parseFloat("abc")//NaN
Number("abc")//NaN
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