不同数据类型的Object.prototype.toString方法返回值如下。
- 数值:返回[object Number]。
- 字符串:返回[object String]。
- 布尔值:返回[object Boolean]。
- undefined:返回[object Undefined]。
- null:返回[object Null]。
- 数组:返回[object Array]。
- arguments 对象:返回[object Arguments]。
- 函数:返回[object Function]。
- Error 对象:返回[object Error]。
- Date 对象:返回[object Date]。
- RegExp 对象:返回[object RegExp]。
- 其他对象:返回[object Object]。
这就是说,Object.prototype.toString可以看出一个值到底是什么类型。
1 | Object.prototype.toString.call(2) // "[object Number]" |
利用这个特性,可以写出一个比typeof运算符更准确的类型判断函数。
1 | var type = function (o){ |
在上面这个type函数的基础上,还可以加上专门判断某种类型数据的方法。
1 | var type = function (o){ |