一、简介

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

1、相同点:

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

(2)语法和作用都类似

2、不同点:

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

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

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

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

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

  1. var colors=new Array();

1.1.1

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

  1. var colors=new Array(20);

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

1.1.2

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

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

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

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

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

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

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

2、Array数组操作

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

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

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

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

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

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

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

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

2、检测数组的方式

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

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

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

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

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

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

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

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. Qt widgets

    1,Qt部件Widgets--CheckWidgets,安置其他部件的Widgets,让用户选择数值的部件 选择部件---使用户能够从预定义的条目菜单中做出选择,combination QListBo ...

  2. Struts2之自定义局部类型转换器、全局类型转换器

    Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器  如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用 ...

  3. 全国计算机等级考试二级教程-C语言程序设计_第7章_函数

    函数执行,从右到左执行 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> main() ...

  4. C++ STL 一般总结

    以下内容来源网上 经过整合而成(转载) 一.一般介绍 STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库.它被容纳于C++标准程序库( ...

  5. IEnumerable和IEnumerator 详解 【转】

    初学C#的时候,老是被IEnumerable.IEnumerator.ICollection等这样的接口弄的糊里糊涂,我觉得有必要切底的弄清楚IEnumerable和IEnumerator的本质. 下 ...

  6. OceanBase中主备Rootserver如何管理切换

    主RootServer会不断给备RootServer发送lease.被RootServer收到该lease后会保存到几个变量中: int ObCheckRunnable::renew_lease(co ...

  7. javascript高级知识点——临时作用域

    代码信息来自于http://ejohn.org/apps/learn/. 自执行,临时,函数 (function(){ var count = 0; })(); 这是一个简单的自执行匿名函数. 做一个 ...

  8. 第六章SignalR的服务器广播

    第六章SignalR的服务器广播 1.概述: VS可以通过 Microsoft.AspNet.SignalR.Sample NuGet包来安装一个简单的模拟股票行情应用.在本教程的第一部分,您将从头开 ...

  9. Virtualbox 启动虚拟机报错以及扩展、显卡驱动安装

    一.Virtualbox虚拟机启动报错,如图 预先估计是BIOS中的cpu Virtualtion虚拟化支持是disable,结果一看是enable. 接下来只好Google,找到了这么一个帖子:ht ...

  10. XenDesktop 5 PowerShell SDK Primer – Part 2 – Creating Hypervisor Connections and Hosts

    One of the new changes that you will see in XenDesktop 5 is the configuration of hypervisor connecti ...