JavaScript(ES6/ES6之前)对函数参数设置默认值

时间:2022-06-17 16:19:07

ES6对函数参数设置默认值

使用=号对参数设置默认值

function myfunc(message, flag = false) {
  // Code
}

myfunc("hello");

当flag没有传递值时,默认为false

也可以使用解构赋值:

function myfunc({ start = 5, end = 1, step = -1 } = {}) {
}

使用{}赋值给命名参数,这可以让我们直接调用空参数的函数,

myfunc();

ES6之前对函数参数设置默认值

es6之前的JavaScript是不支持对函数参数设置默认值,我们只能在函数内做处理,有很多种方法,这里提供一种:

function myfunc(a, b) {
  a = typeof a !== 'undefined' ? a : 1;
  b = typeof b !== 'undefined' ? b : 'default string';
  ...
}

需要注意的是typeof null == 'object',所以上面参数是运行传null的,不传值为undefined,这时使用默认值。