var
1.可以重复声明
2.不能定义常量 var PI = 3.14
3.不支持块级作用域 if(true)
let
不能重复定义声明
let a = 10
let a = 20
不会污染全局对象
if(true){
let a = 10;
}
console.log(a);
不存在变量的预解释
for (let i = 0; i < 2; i ++){
console.log('inner',i);
let i = 100;
}
for循环中也可以使用i
// 嵌套循环不会相互影响
for (let i = 0; i < 3; i++) {
console.log("out", i);
for (let i = 0; i < 2; i++) {
console.log("in", i);
}
}
const
常量不能再赋值
const PI =3.14;
PI =3.15;
变量值可改变
const names = ['zfpx1'];
names.push('zfpx2');
console.log(names);
不同的块级作用域可以多次定义
const A = "0";
{
const A = "A";
console.log(A)
}
{
const A = "B";
console.log(A)
}
console.log(A)