- 区块 block 就是一对大括号:
{}
JavaScript 使用大括号,将多个相关的语句组合在一起,称为“区块”(block)。
对于**var**命令来说,JavaScript 的区块不构成单独的作用域(scope)。
{var a = 1;}a // 1
上面代码在区块内部,使用var命令声明并赋值了变量a,然后在区块外部,变量a依然有效,区块对于var命令不构成单独的作用域,与不使用区块的情况没有任何区别。在 JavaScript 语言中,单独使用区块并不常见,区块往往用来构成其他更复杂的语法结构,比如for、if、while、function等。
虽然 block 对于 var 而言,写了跟没写一样,但是如果我们在 block 内使用 const、let 来声明变量,那么这些变量是具备块级作用域的,即这些使用 const、let 声明的变量只能在 block 内部被访问。
if (true) {var varVariable = "Hello";let letVariable = "World";}console.log(varVariable); // 输出 "Hello"console.log(letVariable); // 报错 ReferenceError: letVariable is not defined
