function makeKing ( name = 'Henry' , numerals = 'VIII' ) {
return ` King ${ name} ${ numerals} `
}
console. log ( makeKing ( ) ) ;
console. log ( makeKing ( undefined , 'V' ) ) ;
可以在参数中使用‘=’给参数赋一个默认值。 当传入的参数为undefined时就会使用这个默认参数值。
function makeKing ( name = "HHH" ) {
console. log ( ` ${ arguments[ 0 ] } ` ) ;
}
console. log ( makeKing ( ) ) ;
修改命名参数也不会影响arguments对象,它始终以调用函数时传入的值为准。
let letter = [ 'a' , 'b' , 'c' , 'e' , 'f' , 'g' ] ;
let index = 0 ;
function getLetter ( ) {
return letter[ index++ ]
}
function mmm ( letter = getLetter ( ) , number = 11111 ) {
console. log ( ` ${ letter} ${ number} ` ) ;
}
console. log ( mmm ( ) ) ;
console. log ( mmm ( "aaaa" , 3333 ) ) ;
console. log ( mmm ( ) ) ;
console. log ( mmm ( ) ) ;
默认参数值不限于原始值或者对象类型,也可以调用函数。 照顾体验咋不调用函数但未传响应参数的时候才会调用默认参数。
let makeKing = ( name = "aaaa" ) => ` King ${ name} ` ;
console. log ( makeKing ( ) ) ;
箭头函数也可以使用默认参数,但是参数需要括号包起来。
function makeKing ( name = "aaa" , numerals = name) {
return ` King ${ name} ${ numerals} `
}
console. log ( makeKing ( ) ) ;
默认参数值可以参照上面注释的代码想象一下流程,后面的参数可以引用先定义的参数,前面的参数不可以引用后面的参数,否则会报错