- 区块 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