为了账号安全,请及时绑定邮箱和手机立即绑定

请问函数参数声明是let声明的吗?

请问函数参数声明是let声明的吗?

开心每一天1111 2019-05-10 15:17:02
varx=1;functionfoo(x=x){//...}foo()//ReferenceError:xisnotdefined上面代码中,参数x=x形成一个单独作用域。实际执行的是letx=x,由于暂时性死区的原因,这行代码会报错”x未定义“。以上是阮一峰老师的教程内容http://es6.ruanyifeng.com/#do...想请教一个问题,如果是let声明的话,那么为什么如果在函数体内用var重复声明变量x没有报错呢?一旦设置了参数的默认值,函数进行声明初始化时,参数会形成一个单独的作用域(context)。等到初始化结束,这个作用域就会消失。这种语法行为,在不设置参数默认值时,是不会出现的。如果是这个原因,那么为什么用let重复声明就会报错呢,毕竟是不同的作用域-------------------分隔线-------------------呃,非常感谢大家的回答,我理解什么是let的暂时性死区。。我不明白的是,为什么说函数参数是let声明的
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 476 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信