一. 数组的创建
数组有两种基本创建方式:
- 字面量方式
- 构造函数
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");
注意:
使用构造函数创建数组对象的时候,最后一个元素后面不要添加逗号,否则报错。 这样是错误的:
new Array("a", )
使用构造函数如果只传入了一个
Number
值,则这个值必须>= 0
, 否则会报错。因为这个时候这个他认为是数组的长度使用构造函数创建数组对象的时候,
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属性不是只读,而是可以修改的。==
通过设置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 的元素被自动从数组移除。
通过给最后一个元素赋值来动态修改元素的长度。
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. 上一行代码仅仅去访问元素,而没有赋值操作,则不会引起数组长度的变化