比typeof运算符更准确的类型判断
比typeof运算符更准确的类型判断
不同数据类型的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){ |
来源:本文导入自 xugaoyi/vuepress-theme-vdoing 的
docs/01.前端/25.JavaScript文章/100.比typeof运算符更准确的类型判断.md。
原作者:xugaoyi。许可证:MIT。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Barry's Blog!





