0、两者都有块级作用域;
都不可以重复声明。
1、const声明一个只读的常量。
一旦定义就不可以改变。否则就会报错如下图所示
(**注意:**
const arr = [];
arr.push(0);// arr=[0]
const obj = {};
obj.name = 'jwl';// obj={name: 'jwl'};
此处声明的变量arr存储地址,而地址指针指向的是一个数组。不可以改变的是这个地址(在栈区中每个声明的变量都有一个地址)。向数组内部添加元素、和给对象添加属性只是在obj存储的地址中添加数据,而没有改变arr指向的地址。
)
若只是声明了,去没有赋值也会报错。此时没有初始化
2、let可以只是声明、也可以对已经声明的变量进行值的改变。
3、都没有变量提升