javaScript中一个判断数据类型比较简单快捷的办法:
var obj = Object.prototype.toString;
//或者使用{}.toString代替Object.prototype.toString,因为对象会继承Objecet的toString方法
console.log(obj.call(123)); //[object Number]
console.log(obj.call("123")); //[object String]
console.log(obj.call(null)); //[object Null]
console.log(obj.call(undefined)); //[object Undefined]
console.log(obj.call({})); //[object Object]
console.log(obj.call([])); //[object Array]
console.log(obj.call(true)); //[object Boolean]
console.log(obj.call(function(){})); //[object Function]
console.log(obj.call(NaN)); //[object Number]
你甚至可以把任何数据放入进行测试!!!
typeof语法:
1、typeof x
2、typeof(x)
二者写法不同,效果一样。
Note:
1、typeof对原始值检测有效,对对象仅仅返回object,不能准确判断
2、typeof不能用于检测属性的存在性,因为typeof的使用会访问变量,当变量不存在时就会出错,可以使用访问对象的属性来检测变量的存在性。
3、检测自定义类型数据时,使用instanceof操作符。
4、数组检测还可以使用Array.isArray(arg)检测,并且不会受框架或窗口的影响