函数参数 不定参数,和 默认参数

 
实现查找一个字符串中是否包含若干“子串”
 
 
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'));
 

猜你喜欢

转载自www.cnblogs.com/tu-front-end/p/11071657.html