首頁 >web前端 >js教程 >javascript Array.prototype.slice的使用範例_javascript技巧

javascript Array.prototype.slice的使用範例_javascript技巧

WBOY
WBOY原創
2016-05-16 17:15:20853瀏覽

常的,可以看到Array.prototype.slice(arguments, 0); 這個寫法可以用於function() {} 內,這樣可以將函數的參數列表轉換成一個真正的陣列。請看例子:

複製程式碼 程式碼如下:

var slice = Array.prototype. slice;
var toString = Object.prototype.toString;
(function() {
  var args = arguments;
  console.log(args, toString.call(args)); // [ 1, 2, 3] "[object Arguments]"
  var argsArr = slice(args, 0);
  console.log(argsArr, toString.call(argsArr)); // [1, 2, 3 ] "[object Array]"
}(1,2,3))

我們可以看到函數的參數清單arguments透過slice呼叫以後,一秒變Array了。
一樣的,也可以將選取的DOM元素轉換成陣列:
複製程式碼 程式碼如下:


程式碼如下:


slice.call(document.querySelectorAll("div"));複製程式碼


程式碼如下:

console.log(slice. 'string')); // ["s", "t", "r", "i", "n", "g"]
console.log(slice.call(new String('string' ))); // ["s", "t", "r", "i", "n", "g"]
每次,字串都會直接轉換成了一個數組。 但是,數字,布林值的會轉換成空的陣列:
複製程式碼


程式碼如下:

console.log(slice.call(33));
console.log(slice.call(true)); 複製程式碼


程式碼如下:

console.log(slice.call({name: 'obj'})); // []
console.log(slice.call({0: 'zero', 1: 'one'})); // []
console.log(slice.call({0: 'zero', 1: 'one', name: 'obj', length: 2}));  // ["zero", "one "] 複製程式碼



複製程式碼

程式碼如下:var srcArr = [1,2,3];var newArr = srcArr.slice(0);console.log(srcArr, newArr);   //1 ,2,3] [1,2,3]console.log(srcArr == newArr);  // false
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn