美文网首页
测试某个值是否是原生的函数,数组,json等

测试某个值是否是原生的函数,数组,json等

作者: Daniel_Y | 来源:发表于2017-12-22 11:55 被阅读0次

在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串。

  • 由于原生数组的构造函数名与全局作用域无关,因此使用toString()就能保证返回一致的值
    function isArray(value){
    return Object.prototype.toString.call(value)=="[object Array]"
    }

  • 同样,也可以基于这一思路来测试某个值是不是原生函数或正则表达式:
    function isFunction(value){
    return Object.prototype.toString.call(value) == "[object Function]";
    }
    function isRegExp(value){
    return Object.prototype.toString.call(value) == "[object RegExp]";
    }

  • 这一技巧也广泛应用于检测原生JSON 对象。Object 的toString()方法不能检测非原生构造函数的构造函数名。因此,开发人员定义的任何构造函数都将返回[object Object]。有些JavaScript 库会包含与下面类似的代码。
    var isNativeJSON = window.JSON && Object.prototype.toString.call(JSON) ==
    "[object JSON]";

相关文章

网友评论

      本文标题:测试某个值是否是原生的函数,数组,json等

      本文链接:https://www.haomeiwen.com/subject/emptgxtx.html