String.slice(start,end)
slice()返回一个子片段,对原先的string没有影响,与subString的区别是,还可以用负数当参数,相当于是length+start,length+end.
例1:
var s = "abcdefg"; s.slice(0,4) // "abcd" s.slice(2,4) // "cd" s.slice(4) // "efg" s.slice(3,-1) // "def" s.slice(3,-2) // "de" s.slice(-3,-1) // "ef"
Array.slice(start,end)
返回从start开始到end的子数组,如果end这个参数没有被设置,则返回从start开始到最后的数组元素。
例2:
var a = [1,2,3,4,5]; a.slice(0,3); // [1,2,3] a.slice(3); // [4,5] a.slice(1,-1); // [2,3,4] a.slice(-3,-2); // [3]
除了正常用法,slice 经常用来将 array-like 对象转换为 true array。在一些框架中会经常有这种用法。
Array.prototype.slice.call(arguments);//将参数转换成真正的数组.
因为arguments不是真正的Array,虽然arguments有
length属性,但是没有slice方法,所以呢,Array.prototype.slice()执行的时候,Array.prototype已经被
call改成arguments了,因为满足slice执行的条件(有length属性).
转自:http://www.cnblogs.com/onlywujun/p/3515813.html
时间: 2024-11-05 20:33:09