关于面试:const-声明对象或者数组可以改变吗

4次阅读

共计 296 个字符,预计需要花费 1 分钟才能阅读完成。

明天逛帖子,忽然遇到这个问题,我第一反馈是不能扭转,如果要扭转,为什么还用 const 定义,而后在浏览器控制台试试后果。

耶,这是什么操作啊,而后在时候定义一个根本类型, 的确是预料中的后果

那为什么 const 定义的对象和数组能够扭转它的值呢?

因为 对象和数组是援用类型,a 中保留的仅是数组的指针,这就意味着,const 仅保障指针不产生扭转,批改数组的值不会扭转对象的指针,所以是被容许的。也就是说 const 定义的援用类型只有指针不产生扭转,其余的不论如何扭转都是容许的。

咱们试着批改一下指针,让 a 指向一个新数组,后果如下图:

即便对象的内容没产生扭转,指针扭转也是不容许的。

好了,算爬出了一个坑,记录下

正文完
 0