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

在任何值上调用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]";

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,332评论 19 139
  • 1.通过typeof可以判断处几种基本数据类型Boolean,number,string,null,undefin...
    舟渔行舟阅读 685评论 0 1
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,622评论 0 4
  • 记得上一次说要写总结的是2016年,资料已经集好了,然后就没有然后了。 刚才翻看了下自己的每日记录的app,1月2...
    阿拉是什么人阅读 275评论 0 1
  • 在我们还是小学生的时候,老师们告诉我们:这点作业你们就叫苦,上了初中你们就知道累了。 上了初中了,我们知道老师说的...
    绽放的精彩阅读 339评论 0 0

友情链接更多精彩内容