不同类型的全局声明在作用范围和访问权限上有所区别。以下是几种不同类型的全局声明及其区别:
var声明:
var x = 10;
function foo() {
var y = 20;
console.log(x); // 10
console.log(y); // 20
}
console.log(x); // 10
console.log(y); // ReferenceError: y is not defined
let声明:
let x = 10;
if (true) {
let y = 20;
console.log(x); // 10
console.log(y); // 20
}
console.log(x); // 10
console.log(y); // ReferenceError: y is not defined
const声明:
const x = 10;
if (true) {
const y = 20;
console.log(x); // 10
console.log(y); // 20
}
console.log(x); // 10
console.log(y); // ReferenceError: y is not defined
请注意,以上示例代码是基于JavaScript的解释器,实际运行结果可能因环境而异。