块级作用域
let
声明的变量只在let
命令所在的代码块内有效。
<!doctype html>
<html>
<head>
</head>
<body>
<script>
{
let a = 10;
var b = 1;
}
console.log(a) // ReferenceError: a is not defined.
console.log(b) // 1
</script>
</body>
</html>
不存在变量提升
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;
// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
不允许重复声明
// 报错
function func() {
let a = 10;
var a ...