{
let a = 10;
var b = 20;
}
console.log(b); // 输出 20
// console.log(a); // 报错,a未定义
// 2、 let 不会提升 var 会
console.log(b); // undefined
// console.log(a); // 报错 在初始化之前无法访问'a'
let a = 10;
var b = 20;
/*
* 相当于:
* var b;
* console.log(b);
* console.log(a);
* let a = 10;
* b = 20;
* */
// 3、 let 只能声明一个,多个会报错,而var不会
var a = 10;
var a = 20;
console.log(a); // 20
let b = 10;
// let b = 20; // 到这一行就会报错 标识符'b'已经声明
console.log(b); // 因上一行报错,自动停止程序,这一行不会执行
// 4、let 有块级作用域 所以在不同的作用域下用let所声明的变量互不影响 而var会有影响
function fn4() {
{
let a = 10;
console.log(a); // 10
}
{
let a = 20;
console.log(a); // 20
}
}