返回课程

函数是否会获取最新的更改?

重要性:5

sayHi 函数使用了一个外部变量名。当函数运行时,它将使用哪个值?

let name = "John";

function sayHi() {
  alert("Hi, " + name);
}

name = "Pete";

sayHi(); // what will it show: "John" or "Pete"?

这种情况在浏览器和服务器端开发中都很常见。例如,一个函数可能被安排在创建后执行,例如在用户操作或网络请求之后。

所以,问题是:它会获取最新的更改吗?

答案是:Pete

函数获取外部变量的当前值,它使用最新的值。

旧的变量值不会被保存。当一个函数需要一个变量时,它会从自己的词法环境或外部环境中获取当前值。