检测数组、函数、正则表达式比较好的方法
来源:互联网 发布:天猫国际和淘宝全球购 编辑:程序博客网 时间:2024/06/05 15:40
最近在看<JavaScript高级程序设计>第22章高级技巧, 看到了可以检测某个内容是否为数组或函数等等内容, 于是觉得在这里总结一下会比较好.
大家知道, 在任何值上面调用Object原生的toString()方法, 都会返回一个[Object NativeConstructorName]格式的字符串, 每个类在内部都有一个[[Class]]属性, 这个属性中就制定了上述字符串中的构造函数名, 而且这个Object的toString()方法不能检测非原生构造函数的构造函数名. 因此, 开发人员定义的任何构造函数都将返回[object Object]. 因此可以用这个特性以下面的方式来检测一个东西是否为数组:
- function isArray(value){
- return Object.prototype.toString.call(value) == "[object Array]";
- }
由于原生数组的构造函数名与全局作用域无关, 因此使用toString()就能保证返回一致的值.
同样, 也可以基于这一思路来测试某个值是不是原生的函数或者正则表达式:
- function isFunction(value){
- return Object.prototype.toString.call(value) == "[object function]";
- }
- function isRegExp(value){
- return Object.prototype.toString.call(value) == "[object RegExp]";
- }
还有, 用于检测一个对象是否为JSON对象可以使用这种方式:
- isJson = function(obj){
- var isjson = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
- return isjson;
- }
0 0
- 检测数组、函数、正则表达式比较好的方法
- 一篇关于正则表达式讲得比较好的文章
- 检测邮件地址的正则表达式
- 好用的正则表达式
- 封装好的正则表达式
- 比较完整的正则表达式
- 比较常用的正则表达式
- 比较齐全的正则表达式
- 比较全的正则表达式
- 比较全的正则表达式
- 想找一个比较好的判断URL的正则表达式
- 看了一篇比较好的关于正则表达式的文章
- php比较好用的几种函数及方法
- 正则表达式的函数
- 正则表达式的函数
- js用正则表达式来验证表单(比较齐全的资源),JS正则test()方法
- .net正则表达式 用法(基于过程和基于表达式方法的比较)
- 数组正则表达式的写法
- LOVE2D-03-完整的LOVE2D程序
- matlab入门练习之杂例二
- 计算机系统概述
- rtsp over http
- 1064. 朋友数(20)
- 检测数组、函数、正则表达式比较好的方法
- Git详解(二):1. 起步(1.4 ~ 1.8)
- File操作(2)------文件夹
- 《异类》
- 'Shader error in 'DX11/GreenScreenShader': Fragment program 'frag': sampler 'SampleType' has no matc
- Java应用基础:进阶篇 习题——单词长度
- [BZOJ 1878]HH的项链(树状数组+离线)
- 一个不错的shell 脚本入门教程
- 【数据结构与算法】二叉树 遍历