美文网首页
const修改引用类型

const修改引用类型

作者: _hider | 来源:发表于2019-08-19 22:10 被阅读0次

const是用来定义常量的,而且定义的时候必须初始化,且定义后不可以修改。这个想必都是常识了,但是有点需要注意的是声明引用类型和基本类型有点不同。用const声明的基本类型一定是无法改变的,否则报错,但是对于引用类型,则稍有不同。废话不多说,直接上代码:

//修改基本类型
const str = 'hello';
str = 'hello world';
console.log(str); //Uncaught TypeError: Assignment to constant variable.

//修改引用类型
const arr = [1,2,3];
arr.push(4);
console.log(arr);//[1,2,3,4]

第一次遇到的是我看控制台的输出都懵逼了,不是说好的会报错吗?不是说const声明的是无法修改的吗?好吧,于是去查了下文档。查自 ECMAScript 6 入门

const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。

相关文章

  • const修改引用类型

    const是用来定义常量的,而且定义的时候必须初始化,且定义后不可以修改。这个想必都是常识了,但是有点需要注意的是...

  • C++ 零碎笔记

    常引用(Const Reference) 引用可以被const修饰,这样就无法通过引用修改数据了,可以称为常引用。...

  • C++中的const、static和extern

    1. const 常量变量const 类型说明符 变量名 常引用const 类型说明符 &引用名 常对象类名 co...

  • 前端面试准备

    1.let const1.块级作用域2.const生成的常量不能修改,(引用类型除外)3.不存在变量提升,所以不能...

  • C++supplement之const型赋值

    同类型的非const类型数据可以赋值给相应的const类型变量,但不能修改其值;const类型变量不能赋值给相应的...

  • C/C++基础知识(五)——类型转换

    TYPE B = static_case(TYPE)(a) const_cast 修改类型的const或volat...

  • c++ 1、修饰符

    const: 声明指定类型的常量,被const 类型修饰对象在程序执行期间不能被修改改变。volatile:...

  • C++函数参数为什么使用const引用

    1 引言 在seastar的commit log中可以看到 就是讲函数参数从引用类型变为const引用类型,com...

  • chapter-7

    const在函数形参,实参,返回类型的区别?const int &i,常量引用形参!,在类内const成员函数为常...

  • C++

    1, const 引用 const 引用是指向 const 对象的引用:const int ival = 1024...

网友评论

      本文标题:const修改引用类型

      本文链接:https://www.haomeiwen.com/subject/picysctx.html