1.const定义的标识符必须初始化

            const a;

报错:const标识符未初始化

定义并赋值:

            const a = 1;

2.const修饰的标识符不能被修改

            const a = 1;
            a = 2;

报错:
再次给const修饰的标识符赋值

3.常量的含义是指向的对象(内存地址)不能改变,对象的内部的属性可以被改变

修改obj内部的属性,不报错

            const obj = {
                name: 'sunny',
                age: 18,
                sex: 'male'
            }
            console.log(obj);
            obj.name = 'cherry';
            obj.age = 20;
            console.log(obj);

修改obj的指向,给obj重新分配一块空间

            const obj = {
                name: 'sunny',
                age: 18,
                sex: 'male'
            }
            //给obj重新分配一个空间对象
            const obj = {};

报错:
const修饰的obj常量,已经存在并且被定义

原理:
obj常量是通过地址去寻找属于他的空间

我们可以修改X0001地址内属性,obj常量仍然指向这个地址。
但是当给obj常量赋一个新的对象时,也就意味着obj常量中存储的地址被修改,这时就会报错。

在开发过程中,尽量使用const定义变量,可以提醒伙伴不要修改这个常量