[js]给函数参数设置默认值的优雅方式

代码示例

var func=function(a=123){
    console.log(a);
}
func("foo");//"foo"

一开始可能会疑惑,调用func的时候,a不是永远等于123了吗?

解析

参数a的过程是这样的。当调用func函数的时候,实参"foo"被传入,

  1. 函数内部产生arguments对象,并将"foo"作为参数写入,arguments[0]="foo",arguments得到初始化
  2. 形参a默认值为123。将形参a赋值为实参,传入函数体内。a=arguments[0];,所以此时a参数为"foo",而非123

注意

低版本浏览器不支持这种用法

参考文献

  1. Clean JavaScript:写出整洁的JavaScript代码
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容