gpt4 book ai didi

javascript - 在 JS 中无法传递具有全局变量名称的局部变量?

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

foo = "foobar";
var bar = function(){
var foo = foo || "";
return foo;
}
bar();`

这段代码给出了一个空字符串的结果。为什么 JS 不能重新分配一个与全局变量同名的局部变量?在其他编程语言中,预期的结果当然是“foobar”,为什么 JS 会这样?

最佳答案

那是因为您声明了一个具有相同名称的局部变量 - 它屏蔽了全局变量。因此,当您编写 foo 时,您指的是局部变量。即使您在声明该局部变量之前编写它也是如此,JavaScript 中的变量是函数范围的。但是,您可以利用全局变量是全局对象 (window) 的属性这一事实:

var foo = window.foo || "";

window.foo 指的是这里的全局变量。

关于javascript - 在 JS 中无法传递具有全局变量名称的局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7186171/

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