我刚才看了一下:
http://jsperf.com/array-destroy/32
我不明白第一个:
arr.length = 0;
可能比以下要慢:
while (arr.length > 0) {
arr.shift();
}
有人能够提供链接或解释一下为什么吗?
我刚才看了一下:
http://jsperf.com/array-destroy/32
我不明白第一个:
arr.length = 0;
可能比以下要慢:
while (arr.length > 0) {
arr.shift();
}
有人能够提供链接或解释一下为什么吗?
使用pop()
方法会移除数组中的最后一个元素。
而使用shift()
方法,则会移除数组中的第一个元素,并重新索引其余所有元素。当数组越大,这个过程需要的时间就越长。
length
时涉及到很多内容:http://es5.github.io/#x15.4.5.1,与`.shift`: http://es5.github.io/#x15.4.4.9相比较。仍在努力查找每个算法在执行`.length = 0`时触发的部分。 - Felix Kling.shift
也会触发与分配给.length
相同的代码。 - Felix Kling