ES6 筆記 Rest 引數和 預設引數

weixin_34148456發表於2017-01-23

函式中剩餘的引數可以用...符號來放入一個陣列張

function containsAll(haystack, ...needles) {
  for (var needle of needles) {
    if (haystack.indexOf(needle) === -1) {
      return false;
    }
  }
  return true;
}

如果呼叫containsAll("banana", "b", "nan")needles會被設定為["b", "nan"]

只有最後一個引數可以被設定為rest引數

預設引數

函式引數可以設定預設引數

function animalSentence(animals2="tigers", animals3="bears") {
    return `Lions and ${animals2} and ${animals3}! Oh my!`;
}

位置靠後的引數的預設值可以使用前面引數的值

function animalSentenceFancy(animals2="tigers",
    animals3=(animals2 == "bears") ? "sealions" : "bears")
{
  return `Lions and ${animals2} and ${animals3}! Oh my!`;
}

傳遞undefined等同於沒有傳引數,會使用預設值

相關文章