gpt4 book ai didi

javascript - 需要解释 javascript 中的范围问题

转载 作者:搜寻专家 更新时间:2023-11-01 05:11:34 24 4
gpt4 key购买 nike

我有这个代码

var Variable = "hello";

function say_hello ()
{
alert(Variable);
var Variable = "bye";
}

say_hello();
alert(Variable);

现在,当我第一次阅读这段代码时,我以为它会提示“hello”两次,但我得到的结果是它第一次提示“undefined”,第二次提示“hello”。有人可以向我解释为什么吗?

最佳答案

在 JavaScript 中,函数中的所有 var 声明都被视为出现在函数体的最顶部,无论它们实际在代码中的什么位置。因此,您的函数被解释为好像是这样写的:

function say_hello() {
var Variable;
alert(Variable);
Variable = "bye";
}

请注意,它只是以这种方式解释的声明;初始化表达式发生在 var 实际上位于您的代码中的位置。因此,您的函数定义了一个名为“Variable”的局部变量,它隐藏了更全局的变量。 alert() 运行时,变量尚未初始化。

关于javascript - 需要解释 javascript 中的范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25127491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com