块级作用域
- 块级作用域必须有大括号
if (true) let x = 1; // 报错
if (true) {
let x = 1;
}
if (true) var x = 1; // 正常
if (true) { var x = 1; }
- 块级作用域内声明的函数,对作用域之外没有影响
function f() { console.log('xx'); }
(function () {
function f() { console.log('xx');
}
if (false) {}
f();
}());
//es5 输出 xx
// ES6
function f() { console.log('xx'); }
(function () {
if (false) {
function f() { console.log('xx'); }
}
f();
}());
// Uncaught TypeError: f is not a function
浙公网安备 33010602011771号