https://blog.csdn.net/jin_doudouer/article/details/80493649

es6中新增了一个const。就是用来定义一个常量的。以前其实一直没有把这个放在 心上,觉得就是定义一个常量的,很easy,没有什么可以深入的。

问题来了:

let obj = {'num1' : 20, 'num2' : 30}
const obj1 = obj
const num = obj.num1
obj.num1 = 40
那么,试问这时候如果输出obj1 和 num的值,分别是多少呢?让我们在谷歌浏览器中试验一下

答案很显而易见了。在obj的num1属性值改变了以后,obj1的值是随着对象的改变而改变了,但是num的值却并没有改变。也就是说:

const定义的对象,当对象改变了之后,const定义的值也会跟着改变。

cosnt定义的变量是一个对象的一个属性值,但是当对象属性值改变了以后,const定义的这个值并不会改变。

那么这是为了什么呢?

在计算机中,常量是放在栈中的,而对象是放在堆中的。对于对象赋值,const指向的仅仅是他的地址,cosnt仅仅是保证这个地址不改变,至于地址对应的数据,是可以进行改变的。举个栗子,现在可能在外工作很多人都是租的房子,假如你住在a公寓的a单元101,cosnt就仅仅是保证他指向的是这个地址,至于你房子里住的是哪些人,他是不关心的。~

而如果定义一个简单的数据类型,那这个数据他本身就是存在栈中的,所以不可以改变。
————————————————
版权声明:本文为CSDN博主「金豆豆er」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jin_doudouer/article/details/80493649

Es6 之 const关键字的更多相关文章

  1. ES6 let const关键字

    在es6中,引入了let和const关键字: 1.letES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. (1)在块级作用域里有效(比 ...

  2. ES6 let const 关键字

    ECMAScript 和 JavaScript的关系? 前者是后者的规格,后者是前者的实现. 符合ECMAScript 规格的还有 Flash 中的AcionScript 和 TypeScript. ...

  3. ES6中 const 关键字

    const声明一个只读的常量.一旦声明,常量的值就不能改变. 定义后可以使用但不能修改 但是,const 定义的对象可能与我们想象的不太一样 定义了对象b ,我们可以在b上添加修改属性,再看一个列子 ...

  4. ES6中的关键字 - const

    const 关键字 1.声明后的值不可以修改: const name = "小康哥"; name = "小康"; // 报错,const为constant的缩写 ...

  5. let 和 const 关键字

    看了阮老师的ES6入门再加上自己的一些理解整理出的学习笔记 let关键字 跟var相比,不会提升为全局变量,始终是块级作用域{} 注意点: 1: 不能在同一个块级作用域内声明同名变量 2: (如果当前 ...

  6. ES6学习之关键字

    前言:什么是ES6?ECMAScript 6(简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.其中相比较于ES5新增了诸多的特性,并且ES6可转换为ES5的语法.- ...

  7. const关键字:终于拥有真正的常量声明语句

    本文首发于个人网站:const关键字:终于拥有真正的常量声明语句 你好,今天大叔想和你唠扯唠扯 ES6 新增的关键字 -- const.在说 const 关键字之前,大叔先和你唠唠大叔自己对 cons ...

  8. PHP的final关键字、static关键字、const关键字

    在PHP5中新增加了final关键字,它可以加载类或类中方法前.但不能使用final标识成员属性,虽然final有常量的意思,但在php中定义常量是使用define()函数来完成的. final关键字 ...

  9. C++中const关键字的使用总结

    C++中使用const关键字来修饰常量,下面从两个方面总结:变量和成员函数. 变量:const可以修饰普通变量.指针(数组)和结构体. 1.const修饰普通变量是最简单的情形.这样的用法多为在程序中 ...

随机推荐

  1. web form 防止一个请求重复提交

    /// <summary> /// 防止一个请求重复提交 /// </summary> public void PreventRepeatSubmit() { if (Scri ...

  2. 【ABAP系列】SAP ABAP MIR7预制凭证BAPI

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP MIR7预制凭 ...

  3. ElasticSearch Machine Learning

    https://www.youtube.com/watch?v=DBRISS0UKcA, 2017/04 Single Metric job: 我想按照 一定的time interval 去 aggr ...

  4. ubuntu18.04 安装mongodb并使用Robo 3T连接Mongodb数据库

    1.前提: 系统:ubuntu18.04  64位 数据库:mongodb GUI:Robo 3T  2018.3.0 描述: mongodb 安装在局域网内的ubuntu的机子上面,  在win 下 ...

  5. 2019 我的世界多了一个 Python

    大一时学过 C语言,大三时用 C 控制单片机,之后就没有别的和编程的交集了. 大约十天前下定决心学 Python,不开玩笑,版本我选 3. 其实我也不是 100% 的零基础,因为一方面,我学过 C:另 ...

  6. 正反向代理、负载均衡、Nginx配置实现

    一.正反向代理 1.前提 我们曾经使用翻墙软件,访问google:使用了代理软件时,需要在浏览器选项中配置代理的地址,我们仅仅有代理这个概念,并不清楚代理还有正向和反向之分. 2.正向代理(代替客户端 ...

  7. RabbitMq学习1-介绍、安装和配置

    一.简介 1.MQ框架非常之多,比较流行的有RabbitMq.ActiveMq.ZeroMq.kafka,以及阿里开源的RocketMQ       2.AMQP是消息队列的一个协议. 3.Rabbi ...

  8. PHP 如何实现页面静态化

    页面静态化分为两种 一种伪静态,即url重写,一种纯静态化. 一.静态化的优点: 1有利于搜索引擎收录网站页面的信息:搜索引擎更喜欢静态的,更变于抓取,搜索引擎SEO排名会更容易提高. 2静态网页化网 ...

  9. Redis的配置与数据类型

    redis window系统的redis是微软团队根据官方的linux版本高仿的 官方原版: https://redis.io/ 中文官网:http://www.redis.cn 1. redis下载 ...

  10. spring boot 枚举使用的坑2

    上一篇说到在枚举当在controller的方法做参数时的坑,解决方法是配置了一个converter,后来想想,如果不闲每次都加一个注解麻烦的话,可以在参数前面加一个注解,添加一个解析器应该也可以解决这 ...