JavaScript 函数的默认参数
【摘要】
ES5 的年代
JS 函数的默认参数都是 undefined,在 ES5 里不支持直接在形参里面写默认值。所以,如果需要设置默认值,只能在函数内部检测该参数是否为 undefined,若非才进行赋值。 ...
ES5 的年代
JS 函数的默认参数都是 undefined,在 ES5 里不支持直接在形参里面写默认值。所以,如果需要设置默认值,只能在函数内部检测该参数是否为 undefined,若非才进行赋值。
- 这是一种比较正规严谨的做法
function add ( a, b ) {
var b = typeof b !== 'undefined' ? b : 0;
return a + b;
}
- 1
- 2
- 3
- 4
也可以使用 arguments 对象,进行判断
function add ( a ) {
var b = typeof arguments[1] !== 'undefined' ? arguments[1] : 0;
return a + b;
}
- 1
- 2
- 3
- 4
- 在 “布尔类型” 的判断中 undefined,0,"", NaN, null 都会被转为 false,所以当采用下面的形式简写的时候一定要注意是否会产生错误
//正确
function add ( a, b ) {
var b = b ? b : 0; // 等价于 var b = b || 0;
return a + b;
}
//错误,因为当 b 为 0 时,会被错误的转化为 1,而产生错误
function multiply ( a, b ) {
var b = b || 1; // 等价于 var b = b ? b: 1;
return a * b;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ES6 的年代
ES6 已经支持默认参数了,直接写就好了
function add ( a, b = 0 ) {
return a + b;
}
- 1
- 2
- 3
文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/chy555chy/article/details/87913125
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)