Javascript 让提升到作用域或创建它在哪里?
Javascript let hoisting to the scope or creating where it is?
x 在 fn 函数之后声明,但 returns 它的值。
为什么 fn 没有 return 未定义?
function doWork(){
let fn = function(){ return x; }
let x = 2;
return fn();
}
console.log(doWork()); // 2
在您的 doWork()
函数中,首先您设置一个函数并将其分配给 fn
-- 此函数 尚未 被调用。然后,您将 x
定义为 2
。 在这个定义之后你通过调用return fn()
.
来调用fn()
因为JavaScript是从上到下工作的,x
是在你引用fn()
的时候定义的,所以fn()
能够return x
正确。
这可以在下面看到:
function doWork() {
let fn = function() {
return x;
}
let x = 2;
return fn();
}
console.log(doWork()); // 2
x 在 fn 函数之后声明,但 returns 它的值。 为什么 fn 没有 return 未定义?
function doWork(){
let fn = function(){ return x; }
let x = 2;
return fn();
}
console.log(doWork()); // 2
在您的 doWork()
函数中,首先您设置一个函数并将其分配给 fn
-- 此函数 尚未 被调用。然后,您将 x
定义为 2
。 在这个定义之后你通过调用return fn()
.
fn()
因为JavaScript是从上到下工作的,x
是在你引用fn()
的时候定义的,所以fn()
能够return x
正确。
这可以在下面看到:
function doWork() {
let fn = function() {
return x;
}
let x = 2;
return fn();
}
console.log(doWork()); // 2