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