ECMAScript引用类型之Array类型(一)
ECMAScript数组与其他语言的数组一样都是有序列表,ECMAScript数组的每一项可以保存任何类型的数据,也就是说,每一项都可以包含不同的对象、字符串、数组等。而且,ECMAScript数组的大小可以动态地调整的,即可以随着数据添加自动增长容纳新增数据。
创建数组的基本方式
第一种是使用Array构造函数:
var num = new Array();//创建一个空的数组 var num = new Array(20);//创建一个length值为20的数组 var num = new Array("1","2","3");//创建一个包含三个字符的数组
可以通过构造函数传递一个值来创建数组,如果传递其他类型的参数,则会创建包含那个值的只有一项的数组。
var num = new Array(3); //创建一个包含3个项的数组,可省略new var num1 = new Array("yellwo");//创建包含一项的数组,可省略new
第二种是使用数组字面量表示法:
var num = ["1", "2", "3"];//["1", "2", "3"] var num1 = [];//[] var num2 = [1,2,];//[1,2,undefined] var num3 = [,,];//[undefined,undefined,undefined] console.log(num);
在IE中,num2与num3都会有三项值(IE8及更早的版本中),在空的数组内会创建创建一个undefined的值;而在其他浏览器中num2会有两项分别是1,2;而num3会有两个undefined,这种方法一般不推荐使用,因为IE的实现与其他浏览器不一致,会有浏览器兼容性问题。、
读取与设置
在读取和设置数组的值时,要使用方括号并提供相应值的基于0开始索引:
var num = ['1', '2', '3'];//定义一个字符串数组 console.log(num[0]);//索引第一项 num[2] = "4";//修改数组中的第三项 num[3] = "5";//新值第五项 console.log(num);
获取数组长度
数组的项数保存在length属性中,这个属性始终会返回0或更大的值:
var str = ["one", "two", "three"]; var num = []; console.log(str.length);// console.log(num.length);//
设置这个属性可以向属性添加项或在末尾移除项:
var str = ["one", "two", "three"];//创建包含3个字符串的数组 str.length = 2; console.log(str[2]);//undefined
设置大于项数:
var str = ["one", "two", "three"];//创建包含3个字符串的数组 str.length = 4; console.log(str[3]);//undefined
使用length属性可以向末尾添加新项
var str = ["one", "two", "three"];//创建包含3个字符串的数组 str[str,length] = "four";//添加到第四个项 str[str.length] = "five";//添加到第五个项
数组最后一项始终时length-1,所以说下一个新项的位置就是length。
var str = ["one", "two", "three"];//创建包含3个字符串的数组 str[99] = "Ninety-nine"; console.log(str.length);//
总结:
- 创建数组有两种方式一种是Array构造函数方法,一种是数组字面量表示法;
- 根据索引值进行访问可以修改插入值;
- length属性可以在数组中设置添加项或在末尾移除项;
如果有错误或者不严谨的地方,请务必给予指正,十分感谢。如果您喜欢或者有所启发,欢迎添加收藏,一起加油学习啊。
相关推荐
TreasureZ 2020-06-20
徐建岗网络管理 2020-06-11
NameCHC 2020-05-25
FCLAMP 2020-04-17
First00 2020-03-01
TyrionZK 2020-01-29
hitxueliang 2020-01-07
zhouxihua0 2019-12-24
First00 2019-12-16
yfisaboy 2019-12-09
阿狸写代码 2019-12-02
bangrenzhuce 2019-11-19
fuguangchao 2019-10-21
tydldd 2019-10-22
beloveddarling 2015-02-26
wayne0 2015-05-26
del 2015-10-16
jiangbo0 2019-07-01