一、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:框架
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
2.Array.slice(start,end)spa
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:prototype
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。在一些框架中会常常有这种用法。code
Array.prototype.slice.call(arguments);//将参数转换成真正的数组.
对象
由于arguments不是真正的Array,虽然arguments有length属性,可是没有slice方法,因此呢,Array.prototype.slice()执行的时候,Array.prototype已经被call改为arguments了,由于知足slice执行的条件(有length属性).blog