let 只能对自己命名的代码块有效
{
let a = 10;
var b = 20;
}
// a报错
// b 20
{
let a = 10;
var b = 20;
//a 10
}
// b 20
let 不像var会发生变量的提升
function do_something() {
console.log(f)
let f = 2
}
do_something();
此时let 会报错
而let换成var 会输出undefined
let的块级作用域
const f1 = () => {
let n = 10;
if (true) {
let n = 20;
}
console.log(n); // 10
}
f1();
const 用来常量声明,一旦声明,其值就不能改变。
const a = 13.14
console.log(a); // 13.14
a = 13
console.log(a); // 报错
const与let命令相同:只在自己声明的块级作用域内有效,也不能重复声明