ES6 函数参数的默认值 疑惑

clipboard.png

为什么在外面使用var就会报错?在里面就不会报错?

function fn(x=8){
  var x = 89;
  console.log(x);//不报错
}
fn();
let y = 7;
var y = 8;//报错
阅读 1.8k
3 个回答

函数的参数相当于var 出来的变量,var重复定义不会报错
函数的参数相当于在声明在一个副作用域与子作用域中间的一个作用域中用let声明了一个变量

因为在外面
你先用let声明了y
你在用var声明y就会报错

let/const 禁止变量提升

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题