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

JavaScript函数体内的变量声明问题

JavaScript函数体内的变量声明问题

杨__羊羊 2019-03-03 17:39:18
分别执行上面的两个函数,F1不会报错,F2报错提示变量重复。如果函数的参数a是以let a的形式声明的,那么函数体内无论是var a还是let a都应该是重复声明变量的啊,难道不是都应该会报错的吗?为什么只有F1报错呢?求大神指导~
查看完整描述

2 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

首先说 
“如果函数的参数a是以let a的形式声明的,” 这里你传递的参数并没有通过let声明;
再说
就算你传递的参数是通过let声明的,声明是在这个函数执行的作用域外,也不影响函数内部的let声明;

之所有前面不报错是因为参数本质上就是函数内部的一个var 声明对象,所以再次var 声明覆盖是没有问题的。
let声明则不允许覆盖前面的同名声明


查看完整回答
反对 回复 2019-03-05
  • 2 回答
  • 0 关注
  • 560 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号