一、简介

除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了。下面就来分析ECMAScript中的数组与其他语言中的数组的异同性:

1、相同点:

(1)他们都是数据的有序列表

(2)语法和作用都类似

2、不同点:

(1)Array数组中的每一项可以保存任何类型的数据。也就是说,可以用数组的第一个位置来保存字符串,用第二位置来保存数值,第三个位置来保存对象的指针

(2)Array数组的大小是可以动态调整的(部分其他的语言也有此特性),即随着数组中数据的添加自动增长以容纳新增数据。

二、使用方式和相关方法介绍

1、创建数组实例的方式有两种:

1.1 第一种:使用new和Array构造函数,代码如下:

var colors=new Array();

1.1.1

我们可以在创建数组实例的同时给该实例限定长度,代码如下:

var colors=new Array(20);

这样就创建了一个长度为20的数组。

1.1.2

我们也可以在创建数组的同时给他初始化,代码如下:

var colors=new Array("red","blue","green");

1.2  第二种方式是使用Array构造函数不使用new操作符,代码如下:

var colors=Array("red","blue","green");

1.3第三种方式使用数字字面量表示法(和Object类型的字面量表示法一样)。代码如下:

var colors=["red","blue","green"];
var colors=[]; //创建了一个空数组

这里注意:通过对象字面创建的数组在创建时就不会调用Array构造函数了,这与Object引用类型创建实例使用对象字面量法一样它也不会调用Object构造函数!

2、Array数组操作

1、下面通过代码来讲解下Array数组的基本操作:

var colors=["red","blue","green"];   //定义一个字符串数组
alert(colors[0]); //显示第一项
colors[2]="black"; //修改第三项
colors[3]="brown"; //新增第四项

但是有一点需要注意,如下代码:

var colors=["red","blue","green"];
colors.length=2;
alert(colors[2]); //输出:undefined

分析上面代码,当使用对象字面量定义了colors数组时,其初始长度是3,当我们修改其长度为2时,这是第三项就会被砍掉,然后我们在输出第三项,就会输出"undefined";

上面代码是将长度缩小的情况,下面来分析如果将长度增加的情况,如下代码:

var colors=["red","green","blue"];
color.length=4;
alert(colors[3]); //输出:undefined

分析上面的代码:初始化定义的长度为3,当将其长度设为4时,那么新增的那项的值就会被设为"undefined",新增的每一项都是!

2、检测数组的方式

在一些特殊应用开发中,我们经常需要判断一个对象是不是一个数组,所以ECMAScript 5提供了两种方法来判断一个对象是不是数组

(1)对一个全局作用域而言,使用instanceof操作符就能得到满意的结果,代码如下:

if(value instanceof Array){
//对数组执行某些操作
}

(2)上面的判断方法是基于一个全局作用域下的,但是有些网页可能包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个不同版本的Array构造函数。如果你从一个框架向另一个框架传入一个数组,但是两个框架有各自的Array构造函数!

所以为了解决这个问题,ECMAScript 5中新增了Array.isArray()方法。这个方法的作用是判断一个值到底是不是数组,而不管它实在哪个全局环境中创建的。代码如下:

if(Array.isArray(value)){
//对数组执行某些操作
}

注意:第二个方法有浏览器限制!

JavaScript引用类型之Array类型一的更多相关文章

  1. JavaScript引用类型之Array类型API详解

    Array类型也是ECMASCRIPT中最常见的数据类型,而且数据的每一项可以保存任何类型的数值,而且数组的大小是可以动态调整的,可以随着数据的添加自动增长以容纳新的数据.下面,总结数据的一些常用方法 ...

  2. 从头开始学JavaScript (十二)——Array类型

    原文:从头开始学JavaScript (十二)--Array类型 一.数组的创建 注:ECMAscript数组的每一项都可以保存任何类型的数据 1.1Array构造函数 var colors = ne ...

  3. JavaScript引用类型和值类型

    thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>t ...

  4. 理解javascript中的Array类型

    引子: 从事前端开发有段时间了,个人观点:想在前端开发这条路上走的更远,不仅要学好HTML&HTML5.CSS&CSS3,最重要的就是要学好javascript了.所以打好javasc ...

  5. 引用类型之Array类型

    Array类型 ECMAScript数组与其它语言数组一样,都是数据的有序列表.但是ECMAScript数组的每一项可以保存任何类型的数据.而且,ECMAScript数组是可以动态调整的. 1.创建和 ...

  6. JavaScript引用类型之Array数组的栈方法与队列方法

    一.栈方法 ECMAScript数组也提供了一种让数组的行为类似与其他数据结构的方法.具体的来说,数组可以变现的向栈一样,栈就是一种可以限制插入和删除向的数据结构.栈是一种LIFO(Last In F ...

  7. javascript数据类型之Array类型

    Array类型 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.而且,ECMAScript中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript数组与 ...

  8. JavaScript之引用类型(Array类型)

    除了Object类型,Array是ECMAScript中最常用的类型了. 与其他语言不同的是,ECMAScript数组的每一项可以保存任何类型的数据. 而且,ECMAScript数组的大小是可以动态调 ...

  9. JavaScript引用类型之Array数组的toString()和valueof()方法的区别

    一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().toString和valueof()方法,因为,所有的对象都继承自Object,而前面所说的方法都是Obj ...

随机推荐

  1. JQuery window、document、 body

    我电脑屏幕分辨率:1440 * 900   最大化浏览器,刷新浏览器 alert($(window).width() + "---" + $(window).height()); ...

  2. mysql排行榜sql的实现

    SELECT num_rows AS num_rows, openid , openid, money FROM lt_cash_user ) t ORDER BY money DESC ) t1 W ...

  3. Qt学习--部件深入--烤猪蹄

    1,进程条--向用户显示程序的当前状态,向用户提示该任务需要多长时间才能够完成. Qt-ProgressBar创建进程条,QProgressBar,为了使进程条担当起进程指示功能,需要执行定义进程条的 ...

  4. hive中partition如何使用

    1.背景 1.在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作.有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念. 2.分区表指的是在创建表 ...

  5. STL的移动算法

    要在自己定义类型中使用移动算法.须要在元素中提供移动赋值运算符.移动赋值运算符和std::move()详见<c++高级编程>第9章 class mystring { public: str ...

  6. 查询最小未使用ID的SQL查询

    --每个都加一,以此来找出最小的未用ID SELECT Min(T1.ID)+1 FROM dbo.TestTable T1 -- 不用查询已经存在的ID WHERE (T1.ID+1) NOT IN ...

  7. Sizzle一步步实现所有功能(基本筛选)

    第二步:实现:first,:last,:eq(),even,odd,:gt(),:lt(); :header,:root,:taget; :not(). ;(function( window ){ v ...

  8. 网页平面设计 HTML

    网页平面设计HTML基础 1.网页的基本元素:文字.图像.超链接 2.HTML的基本机构head.title.body三部分 <html> <head> <title&g ...

  9. HBASE学习笔记--概述

    定义: HBase是一个分布式的.面向列的开源数据库,HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理H ...

  10. Search Bar 去掉背景颜色

    storyboard里只能设置background颜色,可是发现clear color无法使用 其实代码还是可以设置的,那就是删除背景view [[self.searchBar.subviews ob ...