数据类型
分类
-
基本类型
- String:任意字符串
- Number:任意的数字
- boolean:true/false
- undefined:undefined
- null:null
-
对象(引用)类型
- Object:任意对象
- Function:一种特别的对象(可以执行)
- Array:一种特别的对象(数值下标,内部数据是有序的)
判断
- typeof //返回的都是小写字符串
- instanceof
- ===
代码
- 基本类型
var a
console.log(a,typeof a, typeof a==='undefined',a===undefined) //undefined 'undefined' true true
console.log(undefined==='undefined')
a=3
console.log(typeof a==='number')
a='atguigu'
console.log(typeof a==='string')
a=true
console.log(typeof a==='boolean')
a=null
console.log(typeof a,a===null) //'object'
总结:1、 能用===判断的只有2种 undefined、null,这两种类型的值是唯一的。
2、可以用typeof判断的是undefined、数值、 字符串、 布尔值4种。
3、typeof不能区分null与object。
- 对象(引用)类型
var b1={
b2:[1,'abc',console.log],
b3:function(){
console.log('b3')
return function(){
return 'xfzhang'
}
}
}
console.log(b1 instanceof Object,b1 instanceof Array) //true false
console.log(b1.b2 instanceof Array,b1.b2 instanceof Object //true true
console.log(b1.b3 instanceof Function,b1.b3 instanceof Object) //true true
console.log(typeof b1.b3===’function') //true
console.log(typeof b1.b2[2]==='function') //true
b1.b2[2](4) //4
console.log(b1.b3()()) //xfzhang
总结:1 、所有对象(引用)类型都可以用instanceof来判断。
2、函数类型还可以用typeof来判断。
3、typeof不能区分array和object