JavaScript 函数的默认参数

举报
福州司马懿 发表于 2021/11/19 02:21:36 2021/11/19
【摘要】 ES5 的年代 JS 函数的默认参数都是 undefined,在 ES5 里不支持直接在形参里面写默认值。所以,如果需要设置默认值,只能在函数内部检测该参数是否为 undefined,若非才进行赋值。 ...

ES5 的年代

JS 函数的默认参数都是 undefined,在 ES5 里不支持直接在形参里面写默认值。所以,如果需要设置默认值,只能在函数内部检测该参数是否为 undefined,若非才进行赋值。

  1. 这是一种比较正规严谨的做法
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
  1. 在 “布尔类型” 的判断中 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。