typeof :可以查询数据类型。
但是有错误,对于null、数组和对象,打印出来的都是object
console.log(typeof 123);//number
console.log(typeof "123"); //string
console.log(typeof true); //boolean
console.log(typeof undefined);//undefined
console.log(typeof function(){}); //function
console.log(typeof null); //object
console.log(typeof []); //object
console.log(typeof {}); //obejct
这时就可以使用call,
万能数据类型判断
对象构造函数.原型对象(保存方法的).toString方法.call(数据)
function getType(data){
var str = Object.prototype.toString.call(data);
return str.slice(10,-4); //从10开始,到-4
}
getType(undefined);
console.log(Object.prototype.toString.call(123)); //"[object Number]"
console.log(Object.prototype.toString.call("123")); //"[object String]"
console.log(Object.prototype.toString.call(true)); //"[object Boolean]"
console.log(Object.prototype.toString.call(undefined)); //"[object Undefined]"
console.log(Object.prototype.toString.call(function(){})); //"[object Function]"
console.log(Object.prototype.toString.call(null)); //"[object Null]"
console.log(Object.prototype.toString.call([])); //"[object Array]"
console.log(Object.prototype.toString.call({})); //"[object Object]"