iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
自我挑戰組

開始入坑網頁吧!系列 第 18

JavaScript Arguments and Spread

  • 分享至 

  • xImage
  •  

Arguments

它會回傳一個類陣列包含所有你傳到函數中的參數

**類陣列(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 展開運算符

這是將一個陣列展開成個別值的一個速寫語法
語法: ...陣列名

沒有用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詳解
展開運算符與其餘運算符


上一篇
JavaScript Array | 與其他程式語言很不同的陣列(下)
下一篇
JavaScript IIFE (立即函數)
系列文
開始入坑網頁吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言