数据类型分类
基本数据类型
Number:任意数值
String:任意文本
Boolean:true / false
undefined:undefined
null:null
对象(引用)类型
Object:任意对象([]、函数...)
Array:特别的对象类型(数值下标 / 内部数据有序)
Function:特别的对象类型(可执行)
数据类型判断
typeof
返回数据类型的字符串表达
可以区别:数值、字符串、布尔值、undefined、function
不能区别:null与object、一般object与array
var a
console.log(a,typeof a,typeof a==='undefined',a==='undefined',a===undefined);
//undefined "undefined" true false true
var b = 123
console.log(typeof b === 'number'); //true
b = 'js高级'
console.log(typeof b === 'string'); //true
b = true
console.log(typeof b === 'boolean'); //true
b = null
console.log(b === null); //true
console.log(typeof b); //'object'
instanceof
专门用来判断对象数据的类型:Object、Array Function
var b1 = {
b2: [1,'aaa',console.log],
b3: function () {
console.log('b3');
return function () {
return 'bbb'
}
}
}
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()()); //bbb
//用typeof 数组时function
console.log(typeof Array); //function
console.log(typeof b1.b2); //object
console.log(typeof b1.b2[2]); //function
console.log(b1.b2[2](4)); //4 undefined
console.log(b1.b2[2]); //ƒ log() { [native code] }
console.log(b1.b2[2]('abc')); //'abc' undefined
console.log(b1.b3()); //b3 ƒ () {return 'bbb'}
===
可以判断:undefined和null
默认值唯一 ---> undefined:undefined;null:null