gpt4 book ai didi

javascript - javascript中,内部作用域中的变量的重新声明会影响作用域外的变量

转载 作者:太空宇宙 更新时间:2023-11-04 15:30:53 24 4
gpt4 key购买 nike

以下 JavaScript 代码

var variable = 1
console.log(variable)
{
var variable = 2
}
console.log(variable)

给出输出

1
2

考虑到范围在其他编程语言中的工作方式,我发现这非常不直观。作用域内变量的重新声明不应影响作用域外变量的值。

我在 Firefox 和 Chromium 上对此进行了测试。我做错了什么还是这是 javascript 的预期行为?

作为引用,这是其他编程语言中发生的情况:

#include<stdio.h>
int main()
{
int variable=1;
printf("%i\n",variable);
{
int variable=2;
}
printf("%i\n",variable);

return 0;
}

输出:

1
1

最佳答案

使用 ES6,您可以使用 let ,尊重 block 作用域

The let statement declares a block scope local variable, optionally initializing it to a value.

而不是 var 声明。

var variable = 1;
console.log(variable);
{
let variable = 2;
}
console.log(variable);

关于javascript - javascript中,内部作用域中的变量的重新声明会影响作用域外的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44807735/

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