函数参数默认值
ES6 之前, 不能直接为函数的参数指定默认值, 只能采用变通的方法.
- function log(x, y) {
- y = y || 'World';
- console.log(x, y);
- }
- log('Hello') // Hello World
- log('Hello', 'China') // Hello China
- log('Hello', '') // Hello World
面代码检查函数 log 的参数 y 有没有赋值, 如果没有, 则指定默认值为 World. 这种写法的缺点在于, 如果参数 y 赋值了, 但是对应的布尔值为 false, 则该赋值不起作用. 就像上面代码的最后一行, 参数 y 等于空字符, 结果被改为默认值.
为了避免这个问题, 通常需要先判断一下参数 y 是否被赋值, 如果没有, 再等于默认值.
- if (typeof y === 'undefined') {
- y = 'World';
- }
ES6 允许为函数的参数设置默认值, 即直接写在参数定义的后面.
- function log(x, y = 'World') {
- console.log(x, y);
- }
- log('Hello') // Hello World
- log('Hello', 'China') // Hello China
- log('Hello', '') // Hello
来源: http://www.bubuko.com/infodetail-3323216.html