一、分类

基本类型:String(任意字符串),Number(任意的数字), Boolean(true/false),undefined(undefined),null(null)

对象类型:Object(任意对象),Function(一种特别的对象(可以执行)),Array(一种特别的对象(数值下标,内部数据是有序的))

判断数据类型

typeof 返回的是数据类型的字符串表达 可以判断undefined/数值/字符串/布尔值/function

不能判断:null 与Object object与Array

1
2
3
4
var a;
console.log(a, typeof a); //undefined 'undefined'
console.log(undefined === 'undefined') // false
console.log(typeof a === 'undefined', a === undefined); //true true

instanceof 判断对象的具体类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var b1 = {
b2:[1, 'abc', console.log],
b3: function(){
console.log('b3')
return function(){
return 'and'
}
}
}
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)
console.log(b1.b3()()) //and
null 与Object
var a = null
conosle.log(typeof a, a===null) //'object'
object与Array
console.log(typeof b1.b2) //'object'

=== 可以判断undefined null