函数参数 不定参数,和 默认参数
实现查找一个字符串中是否包含若干“子串”
function containsAll(haystack) {
for (var i=1; i<arguments.length; i++){
var needle = arguments[i];
if(haystack.indexOf(needle) === -1) {
return false
}
}
return true
}
console.log(containsAll('banana','b','nan'));
这种写法无法确定参数个数,并且若是haystack前后有其余参数的话,初始索引值要改变
不定参数用法
function containsAll(haystack,...needles){
for(var needle of needles){
if(haystack.indexOf(needle) === -1){
return false
}
}
return true
}
console.log(containsAll('banana','c','nan'));
haystack以外的其余参数放到数组needles中,数组就可以用for-of循环遍历
默认参数自左向右求值
示例
function animalSentence(animals2="tigers",animals3="bears"){
return `Lions and ${animals2} and ${animals3}! Oh my!`;
}
console.log(animalSentence());
console.log(animalSentence('elephants'));
console.log(animalSentence('elephants','whales'));
function animalSentenceFancy(animals2="tigers",animals3=(animals2=="bears")? "sealions" : "bears"){
return `Lions and ${animals2} and ${animals3}! Oh my!`;
}
console.log(animalSentenceFancy('bears'));