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

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,这时使用默认值。

版权声明:著作权归作者所有。

相关推荐

ES6 函数使用解构赋值(Destructuring )的几点好处

解构赋值(Destructuring )是ES6新增的特性。使用解构赋值有以下几点好处:命名参数设置默认参数多个返回值命名参数在传统的函数定义如下:function findUsersByRole (   role,    withContactInfo,    includeInactive )&

JavaScript ES6扩展运算符(...)用例

ES6新增了扩展运算符,它的语法很简单,使用三个点号表示“...”。它的作用是把数组展开为类似用逗号隔开的参数列表。这里介绍几种用例来理解扩展运算符的使用。用例1:插入数组如果我们要在一个数组插入另外一个数组的元素,可以结合splice和apply使用,如:a1 = [1,2,5,6,7]; a2 = [3,4]; a1.splice.apply(a1,&n

JavaScript(ES6)判断字符串是否包含子字符串的方法

ES6 includesES6的字符串新增了includes方法,我们可以用它来判断是否包含子字符串。str.includes(searchString[, position]) searchString:查询的子字符串position:可选,开始搜索的位置,默认为0'Blue Whale'.includes('Blue'); // returns