87,993
社区成员
发帖
与我相关
我的任务
分享
//这是ES6里面的
let foo ='outer';
function bar(func = x => foo){
console.log(func()) //undefined?为何这里是undefined。使用let定义变量,不存在变量声明提升吧,这里为何会输出undefined?
let foo = 'inner';
console.log(func()) //inner
}
bar();
var foo = 'outer';
function bar() {
function func(x) {
return foo;
};
console.log(func()); //undefined,因为下面的变量(var foo = 'inner')声明提升导致这里输出undefined,我的解析对了吧?
var foo = 'inner';
console.log(func()); //inner
}
bar();
let foo ='outer';
let func = x => foo
function bar(){
console.log(func()) //outer
let foo = 'inner';
console.log(func()) //outer
}
bar();