1. let
1.let定义的变量不能重复定义(会报错)
let a = 10;
let a = 20;
console.log(a);
//这里用let重复定义a,会报错
2.不存在变量提升
console.log(a); //会报错,必须先定义才能用
let a = 10;
3.会形成块级作用域(可用于避免变量污染)
for(let i=0;i<4;i++){
console.log(i);
}
console.log(i);
//由于i是在for循环中用let定义的,只在{}内有效,for循环体中的内容会正常输出,但是外部使用的i会提示未定义
2. const
const定义的变量不能重新赋值,但是可以修改对象或数组等里边的内容,如下
const PI = 3.14;
PI = 3.141; //会报错,提示不能为常量赋值
const obj = {
name:'lydia';
age:18;
}
obj.age = 16; // 可以改变对象的属性值
总结:定义常量可以用const,定义变量建议用let