Javascript 如果我有一些用大括号包装的代码呢?

Javascript 如果我有一些用大括号包装的代码呢?,javascript,Javascript,我没有得到这个问题的答案,如果我这样做会发生什么?谁能给我解释一下吗?先谢谢 { var x=10; 变量y=10; var和; 总和=x+y; } 控制台日志(总和)将代码用大括号括起来会创建一个普通块。这就像一个只运行一次的for循环 { // insert code here } 完全等同于(假设变量i除了在for循环声明中之外没有在任何地方使用): 当您将代码包装在大括号中时,它充当普通块。由于您对x、y和sum变量使用了“var”,因此对作用域没有影响。但如果您对x、y和su

我没有得到这个问题的答案,如果我这样做会发生什么?谁能给我解释一下吗?先谢谢

{
var x=10;
变量y=10;
var和;
总和=x+y;
} 

控制台日志(总和)将代码用大括号括起来会创建一个普通块。这就像一个只运行一次的
for
循环

{
  // insert code here
}
完全等同于(假设变量
i
除了在for循环声明中之外没有在任何地方使用):


当您将代码包装在大括号中时,它充当普通块。由于您对x、y和sum变量使用了“var”,因此对作用域没有影响。但如果您对x、y和sum变量使用“let”,那么它将给出以下控制台错误

"Uncaught ReferenceError: sum is not defined"

在这种情况下,x、y和sum不起全局作用。

这是javascript的预期行为。发生这种情况是因为提升,使用var声明的任何内容都会提升到脚本文件的顶部

你应该看看这个

没有什么,在这种情况下,没有什么-如果您使用
let
const
则没有什么不同-但是该代码。。如果您使用
let
const
,可能不会发生任何特殊或不同的情况。但是,对于
var
,不可能存在重复:。
"Uncaught ReferenceError: sum is not defined"