Es6 之 你以为你知道的 const 关键字

发布时间:2019-08-09 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Es6 之 你以为你知道的 const 关键字脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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

问题来了:

let obj = {'num1' : 20, 'num2' : 30}  
const obj1 = obj  
const num = obj.num1   
obj.num1 = 40

那么,试问这时候如果输出obj1 和 num的值,分别是多少呢?让我们在谷歌浏览器中试验一下

Es6 之 你以为你知道的 const 关键字

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

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

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

那么这是为了什么呢?

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

而如果定义一个简单的数据类型,那这个数据他本身就是存在栈中的,所以不可以改变。

写的有不合适的地方,欢迎指正,谢谢

脚本宝典总结

以上是脚本宝典为你收集整理的Es6 之 你以为你知道的 const 关键字全部内容,希望文章能够帮你解决Es6 之 你以为你知道的 const 关键字所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。