let
作用:
定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
实例
let a = 1;
if (a < 2) {
let b = 3;
console.log(a + 1);
}
console.log(b);//报错,不能跨域访问,因为声明的变量b在if语句中
const
作用:
用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。
const可以修改或者新增,但是不能重新赋值,如下例子:
const a=[1,2,3];
a.push(4);
console.log(a);//[1,2,3,4]
a=[5,6];//报错
可以修改a,新增或删除,但是不能给a重新赋值,会报错。
实例
const a = 1;
a=2;
console.log(a);//报错,因为a是常量,不允许修改它的值
const常量对象的属性是可以修改的。因为对象是引用类型的,person中保存的仅是对象的指针,这就意味着,const仅保证指针不发生改变,修改对象的属性不会改变对象的指针,所以是被允许的。也就是说const定义的引用类型只要指针不发生改变,其他的不论如何改变都是允许的。
const person = {
name: 'jack',
sex: 'boy'
};
person.name = "lili";
console.log(person);
var
作用:
定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。