基本数据类型: number,string,boolean,undefined,null函数
引用数据类型:function,object,arrayspa
伪对象: 除了null和undefined,其余三种原始类型都是伪对象。也就是说,一个存储原始值的变量,对象
一样能够使用对应的类的方法,甚至,即便是字面量也能够直接使用这些方法,但它自己依blog
旧是原始类型。ip
Ex: var inn= 4; inn.toString() //"4"string
typeOf:io
只返回6种类型:number,string,boolean,undefined,object,functionfunction
*null类型进行typeof操做符后,结果是object,由于null类型被当作一个空对象引用变量
*array结果也是objectobject
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