但是函数绝不是唯一的作用域单位。块儿作用域指的是这样一种想法:变量和函数可以属于任意代码块儿(一般来说,就是任意的 ),而不是仅属于外围的函数。 在 ES6 中,引入了 关键字(var 关键字的表兄弟)允许在任意代码块中声明变量。if (..) { let a = 2; } 将会声明变量 ,而它实质上劫持了 if 的 { .. } 块儿的作用域,并将自己附着在这里。 [^note-leastprivilege]: