讨论/综合讨论/js函数默认值问题/
js函数默认值问题
 function fn(x = 1) { //函数使用默认值,就形成了一个自己的作用域,为什么在下一行会报错
    var x = 2; //let报错
    console.log(x);
}
 fn();
展开讨论

这没什么好奇怪的吧?
x是形参,就相当于声明了变量,var定义变量会做提升,写不写var 都一个样,但是 let 定义变量,在声明前是无法使用(形参里使用了x),肯定报错。
问题的本质 要搞清楚
1.形参的真正含义
2.let的基本使用规则

展开全部 3 讨论