Array.slice的负数是否安全?

时间:2017-01-20 22:32:30

标签: javascript

我记得几年前读过这个语法(slicesubstr等)将负数作为某些函数的第二个参数传递一些浏览器,但我无法找到参考。

只是想知道是否有人知道ary.slice(0, -1)在所有浏览器中是否特别安全。

2 个答案:

答案 0 :(得分:3)

对起始值或结束值(或两者)使用负数是安全的,并将从数组的末尾进行选择。它支持IE,FF,Chrome,Safari和Opera。

答案 1 :(得分:0)

是的,它对于浏览器是安全的,但是Internet Explorer 4中的错误已在更高版本的IE中修复。另外,请注意索引的进行方式,从0到长度(从开始到结束)的正值索引,但使用负值,显然从后面或.length开始,但从-1开始而不是-0索引。对于结束参数,索引也以相同的方式进行,但不是不返回结束值并替换为下一个值,而是将其结束值替换为前一个值。只是一点笔记。

let a = [1,2,3,4,5];
a.slice(0,3);    // Returns [1,2,3]
a.slice(3);      // Returns [4,5]
a.slice(1,-1);   // Returns [2,3,4]
a.slice(-3,-2);  // Returns [3]; buggy in IE 4: returns [1,2,3]