const用于定义常量,定义完不能修改。

建议在开发中优先使用const,这样可以有效避免变量被其他同事修改的问题。

定义const的时候必须赋值。

const name;   //这样写是不允许的,会报错
name = 'abc; 

常量的含义是:指向的对象不能修改,但是可以修改对象内部的属性。

指向的对象不能修改:像下面这样

const obj = {
    name:'abc',
    age:10
}

obj = {}  //会报错,修改了常量的指向。

image.png

如图,指向的对象不能修改,是说const obj已经指向右上那个对象了,改成指向下面那个对象,是不能修改的。对象保存在内存中,一个对象对应着一个内存地址(见右侧红字和蓝字)。这个地址保存在const常量中,不能修改指向,也就是说这个内存地址是不允许修改的。

【可以修改对象内部的属性】是说,我们可以修改内存内部的属性,而不是改内存地址

const obj = {
    name:'abc',
    age:10
}

obj.name = 'kobe';//修改对象的name属性
obj.age = '40';//修改对象的age属性

案例

之前我们新建Vue实例的时候,通常会这样写:

const app = new Vue({
    el:'#app',
    data:{
        message:'你好啊',
        fristName:'kobe
    }
})

app.firstName = ''

为什么const还可以修改?因为改的不是内存地址,只是修改了内存内部的属性。


白话前端
109 声望8 粉丝