本文实例讲述了JavaScript引用类型Array。分享给大家供大家参考,具体如下:
1、ECMAScript数组的特点
(1)ECMAScript数组的每一项可以保存任何类型的数据。
(2)ECMAScript数组的大小是可以动态调整的。
2、创建数组
(1)使用Array构造函数(new操作符可省略)
var arr1 = new Array();var arr2 = new Array(3);var arr3 = new Array("teacher", 3, true);
(2)使用数组字面量表示法
var arr1 = [];var arr2 = ["teacher", 3, true];
3、length属性
ECMAScript数组的length属性不是只读的,通过设置这个属性可以从数组末尾移除项或向数组中添加新项。
eg1:从数组末尾移除项
var arr = ["teacher", 3, true];arr.length = 1;alert(arr[2]);//undefined
eg2:如果将length设置为大于当前数组长度的值,则新增的每一项都会取得undefined值
var arr = ["teacher", 3, true];arr.length = 4;alert(arr[3]);//undefined
eg3:向数组中添加新项
var arr = ["teacher", 3, true];arr[arr.length] = "doctor";
eg4:当一个值放在超出当前数组大小的位置上时,数组会重新计算其长度值,等于最后一项的索引加一。
var arr = ["teacher", 3, true];arr[9] = "doctor";alert(arr.length);//10
4、检测数组
(1)instanceof
操作符
if (value instanceof Array) { ...}
适用范围:一个网页或一个全局作用域
问题:若网页中包含多个框架,则实际上存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数。若从一个框架向另一个框架传入一个数组,那么传入的数组在与第二个框架中原生创建的数组分别具有各自不同的构造函数。
(2)Array.isArray()
方法
if (Array.isArray(value)) { ...}
用途:确定给定值是否是数组,无论它是在哪个全局执行环境中创建的。
5、转换方法
(1)toString()
:返回每一项的字符串形式拼接而成的一个以逗号分隔的字符串,为了取得每一项的值,调用的是每一项的toString()方法。
(2)valueOf()
:返回的还是数组
(3)toLocaleString()
:为了取得每一项的值,调用的是每一项的toLocaleString()方法,而不是toString()方法。
(4)join()
:使用指定的分隔符来构建字符串
说明:alert()
方法要接收字符串参数,所以它会在后台调用toString()
方法。
eg1:
var friends = ["Alice","Bruce","Cindy"];alert(friends.toString());//Alice,Bruce,Cindyalert(friends.valueOf());//Alice,Bruce,Cindyalert(friends.toLocaleString());//Alice,Bruce,Cindyalert(friends);//Alice,Bruce,Cindyalert(friends.join());//Alice,Bruce,Cindyalert(friends.join("|"));//Alice|Bruce|Cindy
新闻热点
疑难解答
图片精选