const
1.const 声明必赋值
const a;
a = 3;
报错:
Uncaught SyntaxError: Missing initializer in const declaration
正确写法:
const a = 3;
2.const 声明的变量赋值后,无法再修改
const a = 3;
a++;
报错:
Uncaught TypeError: Assignment to constant variable.
3.暂时性死区
与 let 相同,不再赘述,请查阅之前博客
4.const 本质
const 本质是常量,表示无法修改的值。但这个无法修改,其实真正含义是无法修改其指向的内存地址。
所以,number、string、boolean 类型值我们是无法修改的,但是,引用类型变量我们还是可以进行修改的!
const a = [3, 32, 1];
a.push(33);
console.log(a);
运行结果:
(4) [3, 32, 1, 33]
基本数据类型的变量是数据的实际值,存储在“栈”中,js 是弱类型语言,基本数据类型都用 8 字节内存
引用数据类型的变量的名称,存储在“栈”中,存在指针,指向其真正的值,而其真正的值,存储于“堆”中。
补充:闭包变量存储于堆中