JavaScript中的slice函数
String.slice(start,end)
returns a string containing a slice, or substring, of string. It does not modify string。
slice()返回⼀个⼦⽚段,对原先的string没有影响,与subString的区别是,还可以⽤负数当参数,相当于是length+start,length+end. Example:
//from javascript-the definitive Guide 5th Edition
var s = "abcdefg";
s.slice(0,4)    // Returns "abcd"
s.slice(2,4)    // Returns "cd"
s.slice(4)      // Returns "efg"
s.slice(3,-1)  // Returns "def"
s.slice(3,-2)  // Returns "de"
s.slice(-3,-1)  // Should return "ef"; returns "abcdef" in IE 4
substring和slice
2.Array.slice(start,end)
returns a slice, or subarray, of array. The returned array contains the element specified by start and all subsequent elements up to, but not including, the element specified by end. If end is not specified, the returned array contains all elements from the start to the end of array.返回从start开始到end的⼦数组,如果end这个参数没有被设置,则返回从start开始到最后的数组元素。
Example:
var 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]
除了正常⽤法,slice 经常⽤来将 array-like 对象转换为 true array。在⼀些框架中会经常有这种⽤法。
Array.prototype.slice.call(arguments);//将参数转换成真正的数组.
因为arguments不是真正的Array,虽然arguments有length属性,但是没有slice⽅法,所以呢,Array.prototype.slice()执⾏的时
候,Array.prototype已经被call改成arguments了,因为满⾜slice执⾏的条件(有length属性).

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。