Document
// var没有块作用域的概念,只有全局变量和函数内作用域
var g1 = 10;
function f1() {
var local1 = 10;
// 函数内可以访问全局变量,打印10
console.log(g1);
// 可以改变全局变量
g1 = 1;
// 打印1
console.log(g1);
// 未定义i使用,变量提升
console.log(i)
for (var i = 0; i < 10; i++) {
}
// for循环内定义的变量可以在外部使用,打印10
console.log(i);
}
let g2 = 10;
function f2() {
let local1 = 10;
// let声明的局部变量;必须声明后使用
console.log(local1);
for (let i = 0; i < 10; i++) {
}
// let具有块作用域,下面打印会报错Uncaught ReferenceError: i is not defined
// console.log(i)
if (true) {
let v1 = 10;
let v2 = 3;
if (true) {
let v1 = 5;
v2 = 2;
}
// 内层块作用域可以声明同名变量,而不影响外层同名变量
console.log("v1 : " + v1)
// 内层块可以访问外层块的变量
console.log("v2 : " + v2)
}
}
f1();
f2();
一键复制
编辑
Web IDE
原始数据
按行查看
历史