数组,即 Array 类型,是开发中最常用的类型之一。这篇文章主要介绍了浅谈 Javascript 数组的相关资料, 需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
在程序语言中数组的重要性不言而喻,JavaScript 中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript 中数组十分灵活、强大,不像是 Java 等强类型高级语言数组只能存放同一类型或其子类型元素,JavaScript 在同一个数组中可以存放多种类型的元素,而且是长度也是可以动态调整的,可以随着数据增加或减少自动对数组长度做更改。
首先,大概说说数组的基本用法。
数组,即 Array 类型,是开发中最常用的类型之一,javascript 中的数组和其他语言最大的区别就是每一项可以保存任何类型的数据,而且数组的大小是可以动态调整的,有点绕?看看代码吧
1. 数组的创建:
- var arr=new Array(20);
- var arr1=["小伞",1,true,undefined,[2,"王"],""]
第一行用数组构造法创建了一个 length 值为 20 的数组,第二行用数组字面量表示法创建了一个多种数据类型并存的数组。
第一行的方法有点小坑,括号里指定的是数组的长度,而不是数组第一个元素是 20 ,要想创建有一个元素是 20 的这么一个数组,还是用字面量法创建吧。
还有一个小坑,看代码
- var arr=[1,2,];
- var arr1=[,,,,,]
第一行这句会在 IE8 以及之前版本中创建一个值分别为 1,2,undefined 的数组,其他浏览器会产生一个两项分别是 1,2 的数组
第二行同样的可能会在不同浏览器上包含 5 项或者 6 项。(IE9 以上修复了这个问题,但还是不推荐这种写法)
2. 数组元素的基本操作
js 的数组非常的灵活,拥有很多数组元素操作的方法,但也有一些小坑,比如:
- var arr = [];
- arr[0] = 1;
- arr[1] = 2;
- arr.push(3); //arr=[1,2,3]arr[arr.length]=4; //arr=[1,2,3,4]arr.unshift(0); //arr=[0,1,2,3,4];delect arr[2]; //arr=[0,1,undefined,3,4]arr[0]=undefined //arr=[undefined,1,undefined,3,4]
push() 方法会给数组最后边添加一个元素,得到的值可以看注释,^_^
也可以直接手动在数组下标拓展以为,如第三行,其实就相当于 push(4);
那如果想在数组元素最前边添加呢,别急,有 unshift() 方法。
与此对应的有删除元素的 pop() 方法和 shift() 方法,分别和 push(),unshift() 对应,就不再赘述了。
delect 运算符对数组的操作不会删除掉数组的元素,可以说是用 undefined 来占个位子,和直接赋值是一样的。
3. 稀疏数组
稀疏数组是指数组的下标并不是从 0 开始,一般数组的长度要比元素的个数要多:
- var arr1 = [undefined];
- var arr2 = new Array(1);
- 0 in arr1; //true
- 0 in arr2; //false
- var arr3 = new Array(100);
- arr3[99] = "赋值";
- 99 in arr3; //true
- 98 in arr3; //false
arr1 中是因为数组第 1 列是有值的,虽然是 undefined,arr2 只是指定了数组长度,第 1 列还是没有值,所以用 in 语句会返回 false。arr3 中给第第 100 个元素赋值后检测是有值的,对其他列的 key 是没有影响的,所以还是返回了 false。
以上所述是小编给大家介绍的 Javascript 数组的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 phperz 网站的支持!
来源: http://www.phperz.com/article/17/0224/265696.html