gpt4 book ai didi

javascript - 在 Javascript 中使用提升

转载 作者:行者123 更新时间:2023-11-28 13:29:38 25 4
gpt4 key购买 nike

通过js提升后代码会是什么样子?jsFiddle 显示它打印 1,但这是怎么回事呢?

var a = 1;
function b() {
a = 10;
return;
function a() {}
}
b();
alert(a);

这是我想出的:

var a;              //hoisted var declaration
function b() { //hoisted function declaration
function a() {} //hoisted function declaration
a = 10;
return;
}
a=1;
b();
alert(a);

最佳答案

这是预期的行为。

var a = 1;
function b() {
a = 10;
return;
function a() {}
}
b();
alert(a);

这一切都与函数的范围和定义时间有关。首先使用代码字 function 声明函数

function a(){};

将在解析时将函数添加到作用域。 I.E 它是在 b() 中的第一行之前定义的。所发生的事情是,您将 a 定义为 b 内的局部变量。这将使全局变量 a 从 b 内部无法访问。 a 将在 b 范围内进行本地定义和操作,并且全局 a 保持不变。

等效代码为

var a = 1;
function b() {
var a = function() {}
a = 10;
return;
}
b();
alert(a);

关于javascript - 在 Javascript 中使用提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26095142/

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