为什么函数内部的这个变量可以在函数语句下读取全局变量?

时间:2018-04-11 09:31:12

标签: javascript node.js

function fn() {
    console.log(foo);
}

const foo = 3;

run();

为什么函数内部的变量可以读取甚至在函数语句下声明和赋值的全局变量?

JavaScript如何在这种情况下工作? 我想了解它是如何运作的。

fn();

function fn() {
    console.log("hello");
}

我知道这确实有效,因为功能提升。但第一个代码是另一个故事,对吗?

1 个答案:

答案 0 :(得分:1)

解释JavaScript。只有在调用它时才会评估该函数。如果将函数调用移到变量声明之前,它将无法工作。请参阅下面的代码(它给出了一个错误)



function fn() {
    console.log(foo);
}
fn();
const foo = 3;




function fn()只是一个声明,直到被调用为止。