数据类型检测篇
1.typeof (输出数据类型)
console.log(typeof "lihao"); 输出string 字符串类型
console.log(typeof 100); 输出number 数值类型
console.log(typeof true); 输出boolean 布尔值
console.log(typeof null); 输出object 对象类型
console.log(typeof undefined); 输出undefined 未定义
//console.log(typeof []); 输出object 对象类型
console.log(typeof function(){}); 输出function 函数类型
console.log(typeof {}); 输出object 对象类型
注意:此方法无法检测数组
2.instanceof (输出布尔值,为true则真)
console.log("lihao" instanceof String); 输出false
console.log(100 instanceof Number); 输出false
console.log(new Number(1) instanceof Number); 输出true
console.log(true instanceof Boolean); 输出false
//console.log(null instanceof Null); 输出Null is not defined
//console.log(undefined instanceof Undefined); 输出Undefined is not defined
console.log([] instanceof Array); 输出true
console.log(function(){} instanceof Function); 输出true
console.log({} instanceof Object); 输出true
注意:此方法无法检测null 和 undefined
注意:此方法无法检测字面量创建基本数据类型,可识别new关键字去创建基本数据类型
3.constructor (输出布尔值,为true则真)
console.log(("lihao").constructor === String); 输出true
console.log((100).constructor === Number); 输出true
console.log((true).constructor === Boolean); 输出true
//console.log((null).constructor === Null); 输出Null is not defined
//console.log((undefined).constructor === Undefined); 输出Undefined is not defined
console.log(([]).constructor === Array); 输出true
console.log(({}).constructor === Object); 输出true
console.log((function() {}).constructor === Function); 输出true
注意:此方法无法检测null 和 undefined 及构造函数
4.Object.prototype.toString.call() (输出数据类型)
console.log(fun.call("lihao")); 输出[object String]
console.log(fun.call(100)); 输出[object Number]
console.log(fun.call(true)); 输出[object Boolean]
console.log(fun.call(null)); 输出[object Null]
console.log(fun.call(undefined)); 输出[object Undefined]
console.log(fun.call([])); 输出[object Array]
console.log(fun.call(function() {})); 输出[object Function]
console.log(fun.call({})); 输出[object Object]