JavaScript基础之七(Arrays)

1.关于数组逗号和元素个数:var arr=[], arr1=[,], arr2=[,,] 长度分别为0,1,2。这里有比较奇怪的就是arr2的长度是2不是3,因为数组元素后面的逗号是可选的。
2.稀疏数组和密集数组

稀疏数组指元素不一定是从0开始的连续的索引,比如:

很显然,稀疏数组需要更多的内存相对于密集数组来说,当然javascript里面根据我们使用不一样,导致该数组是稀疏还是密集。这里需要注意稀疏数组在没有设置值的索引区间是没有元素的,虽然去获取arr[99]会返回undefined,但是这个跟var arr=[undefined,undefined]里面的元素是不同的。

看一个例子,可能会发现一个书籍里面的错误,应该是浏览器的javascript引擎升级所致。我在最新的IE和CHrome里面测试过

3.数组的长度length

1)如果设置length的长度小于了数组本身的长度,那么原来数组中索引在length后面的元素都会被删除。例如:

2)当然要清空一个数组可以直接arr.length=0;数组变为[]

4.使用delete删除数组的元素,不会影响数组的长度。

5.几个数组方法:

1)reverse():反转一个数组。

2)slice和splice:slice会返回一个新的数组,不会修改原来的数组,splice会修改原数组。

3)toString():把数组中的每一个元素转成字符串,然后用逗号拼接。例如:[1,2,[‘c’,’d’,[‘e’]]].toString() –>”1,2,c,d,e”

4)toLocalString():跟toString的作用一样,是toString的本地版本,不过我确实没发现有什么不一样。

5)forEach():遍历数组;

6)Array.isArray():判断是否为数组

6.数组与类数组:类数组里面的length属性不能随着元素添加来改变,也不能设置length属性来缩小类数组,不继承Array.prototype。所以不能调用数组的方法

7.string是一种特殊的数组:Array.isArray(‘string’)–>false,可以当作一种只读的字符数组,但是又不能使用push,pop等方法。因为string是不可变的,所以不能通过数组的方法去修改string。例如:

javascript
作者:张雪飞
出处:https://zhangxuefei.site/p/18
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

发表评论

电子邮件地址不会被公开。 必填项已用*标注