1. instanceof操作符(ECMAScript3)

  对于一个网页,或者是一个全局作用域而言,使用instanceof操作符来检测数组就可以得到满意的结果。

  语法:if(value instanceof Array){

      //对数组执行某些操作

    }

eg:

  var colors=["red","pink"];
var n=18;
var isArray=colors instanceof Array;//返回true
var isArray1=n instanceof Array;//返回false
alert(isArray);
alert(isArray1);

注意:

  instanceof操作符在存在多个全局作用域(像一个页面包含多个框架frame)的情况下,var isArray=value instanceof Array;要返回true,value必须是数组,而且还必须与Array构造函数在同一全局作用域中。(Array是window的属性)如果value是另一个框架中定义的数组,那么会返回false。

  instanceof具体的用法参考  https://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/#icomments

  

2. Array.isArray()方法(ECMAScript5)

语法:

  if(Array.isArray(value)){

    //对数组执行某些操作

  }

eg:

  

 var colors=["red","pink"];
var n=18;
var isArray=Array.isArray(colors);//返回true
var isArray1=Array.isArray(n);//返回flase
alert(isArray1);
alert(isArray);

注意:

  支持Array.isArray()方法的浏览器有IE9+,Firefox 5+,Opera 10.5+和Chrom。要在尚未实现这个方法的浏览器中准确检查数组,参考下面的方法。

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

eg:

 var colors=["red","pink"];
var number1=20;
var obj=new Object();
alert(Object.prototype.toString.call(colors));//"[object Array]"
alert(Object.prototype.toString.call(number1));//"[object Number]"
alert(Object.prototype.toString.call(obj));//"[object Object]"

  由于原生的构造函数与全局作用域无关因此使用toString()就能保证返回一致的值。利用这一点,可以创建如下函数进行判断:高程书P597

  function isArray(value){
return Object.prototype.toString.call(value)=="[object Array]";
}

最新文章

  1. 【PHP升级】CentOS6.3编译安装 PHP5.4.38
  2. java 对EXCEL表格的处理
  3. Android_Activity生命周期
  4. Oracle Created (Default) Database Users
  5. Builder模式(建造者模式)
  6. 使用PIL处理image
  7. Activity的切换动画
  8. 连接Redis_五种数据格式
  9. 04-jQuery的属性操作
  10. springboot 整合 redis 共享Session-spring-session-data-redis
  11. leetCode练习题
  12. JSP 执行流程
  13. [转]链接中 href='#' 和 href='###' 的区别以及优缺点
  14. 通过sys.objects查询SQL SERVER数据库改动内容
  15. bzoj 5210(树链刨分下做个dp)
  16. android中完全退出当前应用程序的四种方法
  17. Codeforces 650 D. Zip-line
  18. sprinboot+redis
  19. iOS学习之UIPickerView控件的简单使用
  20. vuecli3 运行报错

热门文章

  1. windows下的命令行工具babun
  2. MyEclipse对Maven的安装
  3. Topshelf 学习 跨平台
  4. 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群
  5. 酷酷的CSS3三角形运用
  6. ASP.NET Identity入门系列教程(一) 初识Identity
  7. 用java开发微信公众号:接收和被动回复普通消息(三)
  8. 从零到有——我的OA如何成长
  9. With(ReadPast)就不会被阻塞吗?
  10. 【说解】在shell中通过mkfifo创建命名管道来控制多个进程并发执行