安全且万能的类型检测

2019-04-16  本文已影响0人  萘小蒽

Object.prototype.toString.call()

在项目需求中,一些内置的类型检测也许对我们够用,整体的规范并不会造成不靠谱的结果,但是多人开发,复杂的环境,没有整体的数据规范呢?

  • 在任何值上调用Object原生的toString()方法,都会返回一个[Object NativeConstructorName]
  • 每个类在内部都有一个[[Class]]属性,这个属性中就指定了上述NativeConstructorName的构造函数名。
function isArray(val){
   return Object.prototype.toString.call(val) =="[object Array]"
}
function isFunction(val){
   return Object.prototype.toString.call(val) =="[object Function]"
}

它也可以检测浏览器是否支持原生JSON对象。

var NativeJSON = window.JSON&&Object.prototype.toString.call(JSON)=="[object JSON]"

上一篇 下一篇

猜你喜欢

热点阅读