它會回傳一個類陣列包含所有你傳到函數中的參數
**類陣列(Array-like):跟Array很像,但只有陣列的length屬性和通過索引獲取元素的方法,如果是forEach(),map(), push(), splice() 等都不行用。(不過它可以被轉成真的陣列)
EX:
function family(Dad,Mom,child){
console.log(arguments);
console.log('長度: '+arguments.length);
}
family('阿華','小芬','小小');
//Arguments(3) ['阿華', '小芬', '小小', callee: ƒ, Symbol(Symbol.iterator): ƒ]
//長度:3
這是將一個陣列展開成個別值的一個速寫語法
語法:...陣列名
沒有用Spread時
EX:
var zoo=['fish','bear','cow'];
console.log(['tiger','monkey',zoo]);
//(3) ['tiger', 'monkey', Array(3)]
注意上面的zoo裡面的項目都還包在陣列裡面
EX:
var zoo=['fish','bear','cow'];
console.log(['tiger','monkey',...zoo]);
//['tiger', 'monkey', 'fish', 'bear', 'cow']
上面的zoo陣列每個值都被展開了
挺好用的,這種語法也能用在函數的傳值上
EX:
var zoo=['fish','bear','cow'];
function callZoo (a,b,c){
console.log('動物園裡有: '+a+'、 '+b+'、 '+c);
}
callZoo(...zoo);
//動物園裡有: fish、 bear、 cow
參考文章:
MDN arguments
javascript的arguments詳解
展開運算符與其餘運算符