js数据类型的检测,在日常开发中我们经常会用到数据类型的检测,不过我们一般使用typeof 就够用,
但是也不排除一些typeof
区分不了的
var a = undefined;
console.log(typeof a) //undefined
var b = null;
console.log(typeof b) //object
var c = true ;
console.log(typeof c) //boolean
var d = "asdjkasd" ;
console.log(typeof d) //string
var e = 111 ;
console.log(typeof e) //number
var d = function(){
}
console.log(typeof d) //function
var e = {};
console.log(typeof e) //object
var f = [];
console.log(typeof f) //object
//从上面看出 b e f 三个用 typeof检测返回的都是object,那我们怎么依依却分他们呢
//如何区分null 和对象呢
//使用Object.prototype.toString.call(obj) === '[object Object]'
console.log(Object.prototype.toString.call(b) === '[object Object]') //false 说明不是对象
console.log(Object.prototype.toString.call(e) === '[object Object]') //true 说明是对象
//区分数组和对象
console.log(Array.isArray(e)); // false 说明不是数组,IE8以下不支持这个方法
console.log(Array.isArray(f)); // true 说明是数组
//或者使用
console.log(Object.prototype.toString.call(f) === '[object Array]');//true