寫JavaScript的時候經常會遇到需要傳入不定數量的參數的情況,這就是不定參數。在函數定義中使用“...參數名”的形式,可以方便地處理這種情況,具體實現方式如下:
function functionName(...args){ //函數體 }
這樣在函數內部就可以通過args數組訪問所有傳入的參數。下面來看幾個使用不定參數的例子。
例1:
function sum(...nums){ let result = 0; for(let i=0; i<nums.length; i++){ result += nums[i]; } return result; } console.log(sum(1,2,3,4,5)); //輸出15 console.log(sum(4,5,8)); //輸出17
在這個例子中,不定參數使得函數可以接受任意數量的參數,并對它們進行求和。
例2:
function multiply(multiplier, ...args){ return args.map(function(num){ return multiplier * num; }); } console.log(multiply(2, 1, 2, 3)); //輸出[2, 4, 6] console.log(multiply(5, 4, 6)); //輸出[20, 30]
這個例子中使用不定參數配合數組的map方法實現了一個多元素乘法器,可以對傳入的任意數量的參數進行乘法運算。
除了使用“...參數名”的形式外,在函數中也可以使用arguments對象來處理不定參數,arguments是一個類數組對象,包含了傳入函數的所有參數,它與數組非常類似,可以使用length屬性和索引值訪問其中的元素。
例3:
function concatenation(separator){ var result = ""; for(var i=1; i<arguments.length; i++){ result += arguments[i] + separator; } return result; } console.log(concatenation(",", "a", "b", "c")); //輸出a,b,c, console.log(concatenation("-", "1", "2", "3", "4")); //輸出1-2-3-4-
在這個例子中,使用arguments對象拼接傳入的所有字符串成為一個大的字符串,并在它們之間加入分隔符。
不定參數是JavaScript中一個非常實用的特性,可以幫助我們簡化代碼、增加代碼的靈活性,熟練掌握它可以讓我們在編寫JavaScript程序時更加得心應手。