基本数据类型: number,string,boolean,undefined,null
引用数据类型:function,object,array
伪对象: 除了null和undefined,其他三种原始类型都是伪对象。也就是说,一个存储原始值的变量,
同样可以使用对应的类的方法,甚至,即使是字面量也可以直接使用这些方法,但它本身依
旧是原始类型。
Ex: var inn= 4; inn.toString() //"4"
typeOf:
只返回6种类型:number,string,boolean,undefined,object,function
*null类型进行typeof操作符后,结果是object,因为null类型被当做一个空对象引用
*array结果也是object
eg: typeof age /* undefined */ 未定义,却返回undefined
强制类型转换
(构造函数) Number,Boolean,String,Object,Function,Array
parseInt,parseFloat
隐式类型转换:
!!: 一般用来将后面的表达式转换为布尔型的数据(boolean).
!操作符会先将值转为boolean, 再求反, !! ~= Boolean()
~~: 操作符~, 是按位取反的意思,,实际上在JS中可以将浮点数变成整数.
Tips: number + Boolean -> number + number
NAN:
NAN 自身也不相等 if(x !=X)
*isNaN()函数,传入一个参数,函数会先将参数转换为数值。(如果参数类型为对象类型,会先调用对象的valueOf()方法, 再确定该方法返回的值是否可以
转换为数值类型。如果不能,再调用对象的toString()方法,再确定返回值。)
instanceof:
用来检测是否由某一类型函数创建
eg: var a = [];
a instanceof Array //true