一. 数组的创建

数组有两种基本创建方式:

  • 字面量方式
  • 构造函数

1.1 字面量的方式

数组字面量: 所有的元素用方括号括起来,不同的元素之间用逗号分隔。

例如:["a", 5, "b"]

//创建一个长度为 3 的数组,并初始化了3 个元素:"abc" "b" "d"
var colors = ["abc", "b", "d"];
//创建一个长度为 0 的空数组数组。里面一个值都没有
var colors = [];
//不要在最后一个元素的后面添加逗号,添加逗号虽然语法没有问题,但是在不同的浏览器可能得到不同的结果
var colors = [5, 6, 7,]; //这样数组的长度可能为 3 也可能为 4。在不同浏览器会得到不同的结果.应避免这种创建方式。

1.2 构造函数的方式

构造函数在创建对象的时候使用。数组的构造函数式 Array()

例如: new Array(数组长度);

//创建一个长度为 0 的空数组
var colors = new Array();
//创建一个长度为 5 的数组。注意这个时候,只是这个数组的length属性是5,但是数组是这样的: [] 初始值也不是undefined的。
var colors = new Array(5);
//创建一个长度为 3 的数组,并且3个元素分别是 "blue" "red" "green"
var colors = new Array("blue", "red", "green");

注意:

  1. 使用构造函数创建数组对象的时候,最后一个元素后面不要添加逗号,否则报错。 这样是错误的:new Array("a", )

  2. 使用构造函数如果只传入了一个Number值,则这个值必须 >= 0, 否则会报错。因为这个时候这个他认为是数组的长度

  3. 使用构造函数创建数组对象的时候,new 关键字是可以省略的。 例如:Array(5) 这样是可以的。


二、访问和修改数组中的元素

利用索引访问数组中的元素。

如果数组的长度为 5,那么数组的索引为 0,1,2,3,4

//创建一个长度为 5 的数据
var arr = [10, 20, 60, 5, 7];
alert(arr[0]); //获取下标为 0 的元素, 即:10
alert(arr[2]); //获取下标为 2 的元素, 即:60

//
arr[1] = 100; //把下标为 1 的元素赋值为100。

三、数组的长度

3.1 获取数组的长度

每个数组都有一个叫 length的属性,表示数组的长度(即:元素的个数)。

var arr = [10, 20, 60, 5, 7];
alert(arr.length);  //弹出:5

3.2 修改数组的长度

在一般的强类型语言中,数组的长度是固定的,即:数组一旦创建成功,则不能改变数组的长度。

但是,JavaScript是一种弱类型的动态语言,数组的长度可以在程序运行期间根据需要进行动态的更改

==数组length属性不是只读,而是可以修改的。==

  1. 通过设置length的值直接修改数组的长度到指定的数值。

     var arr = ["a", 8, "bc"]; //数组的长度为 3 
     arr.length = 6; // 修改数组的长度为 6 
     alert(arr.length);  //数组的长度已经被修改为了 6 ,所以此处输出6.
     // 下标为 3, 4, 5 的元素的值为undefined的。
     alert(arr[3]);  //弹出:undefined的。
    
     arr.length = 2; // 修改数组的长度为 2 ,则下标为 >=2 的元素被自动从数组移除。
    
  2. 通过给最后一个元素赋值来动态修改元素的长度。

     var arr = [4, 6, 8];
     // 给下标为 10 的元素赋值为 100.    由于最初长度为 3 ,这个赋值操作完成后,数组的长度会自动增长为11
     arr[10] = 100;
     alert(arr.length);  // 弹出:11
     // 没有赋值的元素默认都为 undefined
     alert(arr[5]); //弹出:undefined
    
     alert(arr[20]); //弹出: undefined
     alert(arr.length); // 长度仍然为11.  上一行代码仅仅去访问元素,而没有赋值操作,则不会引起数组长度的变化
    

Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-10-18 03:19:29

results matching ""

    No results matching ""