ES6 const 介绍

简介: 使用const语法创建变量,一旦创建成功,就不能改变它们的值,因此我们称为常量。如果你尝试改变一个const变量,则会抛出异常const a = 2;a = 3VM27863:1 Uncaught TypeError: Assignment to constant variable. at <anonymous>:1:3原理:阻隔变量所对应内存地址被改变ES6在对变量的引用进行读取时,会从该变量当前所对应的内存地址所指向内存空间中读取内容。

使用const语法创建变量,一旦创建成功,就不能改变它们的值,因此我们称为常量。如果你尝试改变一个const变量,则会抛出异常

const a = 2;
a = 3
VM27863:1 Uncaught TypeError: Assignment to constant variable.
    at <anonymous>:1:3

原理:阻隔变量所对应内存地址被改变

ES6在对变量的引用进行读取时,会从该变量当前所对应的内存地址所指向内存空间中读取内容。当变量改变时,引擎会重新从内存分配一个新的内存以存储新值,并将新值的内存地址与变量进行绑定。const的原理便是在变量名与内存地址时间建立不可变的绑定。

可变的对象变量

const obj = {name: 111}
obj.name = 222
这样是可以改变的,改变的只是对象属性的值,对象本身的地址引用并没有改变,所以不报错

obj = {age: 12}
这样就会报错,因为尝试去改变obj的地址引用

如何让对象的属性不可变呢

可以用Object.freeze(),该方法为浅冻结

const obj = Object.freeze({
  name: 222,
  school: {
    name: '学校'
  }
})
obj.name = 333 // 不会有任何变化,严格模式下会报错
obj.school.name = 'jj' // 会重新赋值
相关文章
|
JavaScript 前端开发 程序员
用Unity不会几个插件怎么能行?Unity各类插件及教程推荐
话说工欲善其事必先利其器,程序员总是有一些开发利器,而对于Unity3D开发程序员来说,插件就是非常好用的利器。 今天博主,就将比较好用的插件推荐给大家,希望一起学习品鉴。
|
算法 数据可视化 Python
Python启发式算法中爬山法的讲解及解方程问题实战(超详细 附源码)
Python启发式算法中爬山法的讲解及解方程问题实战(超详细 附源码)
473 0
|
3月前
|
传感器 人工智能 供应链
智能体未来发展趋势:对标国家“十四五”AI规划的技术方向研判
《智能体技术发展白皮书(2024)》指出,自主、多模态、行业化智能体将成为未来三年核心方向。自主智能体实现动态决策,提升制造效率;多模态智能体优化人机交互,覆盖智能家居等场景;行业化智能体深度融合医疗、金融、教育等领域,推动数字化转型。预计2027年行业市场规模超800亿元,助力国家人工智能战略落地。(238字)
|
5月前
|
缓存 安全 Windows
错误代码0x80070570步骤
针对错误代码 ‌0x80070570‌(文件或目录损坏错误),以下是详细解决步骤:
|
NoSQL Ubuntu 安全
在Ubuntu 18.04上安装和保护Redis的方法
在Ubuntu 18.04上安装和保护Redis的方法
347 0
|
10月前
|
存储 JSON API
淘宝商品详情API接口概述与JSON数据示例
淘宝商品详情API是淘宝开放平台提供的核心接口之一,为开发者提供了获取商品深度信息的能力。以下是技术细节和示例:
|
机器学习/深度学习 编解码 算法
ICCV 2023 | 当尺度感知调制遇上Transformer,会碰撞出怎样的火花?
近年来,基于Transformer和CNN的视觉基础模型取得巨大成功。有许多研究进一步地将Transformer结构与CNN架构结合,设计出了更为高效的hybrid CNN-Transformer Network,但它们的精度仍然不尽如意。本文介绍了一种新的基础模型SMT(Scale-Aware Modulation Transformer),它以更低的参数量(params)和计算量(flops)取得了大幅性能的提升。
|
弹性计算 NoSQL Shell
redis没设置密码,莫名被设置了4个sh脚本
阿里云ECS实例上未设密码的Redis服务被发现含有未知来源的SH脚本,这些脚本定时从外部URL下载并执行代码。这可能是服务器遭受恶意攻击的迹象。建议立即检查系统日志,确认是否被黑,并移除这些脚本。同时,为Redis设置密码,加强安全防护。若不确定,可寻求专业安全团队帮助。
583 2
|
监控 安全 物联网
物联网卡应用中一些常见限制
物联网卡(IoT SIM卡)在实际应用中,除了APN配置的多样性外,还受到多种限制和约束。这些限制通常与网络运营商的政策、服务条款、技术实现以及安全需求紧密相关。以下是一些常见的物联网卡限制:
|
敏捷开发 持续交付 项目管理
【软件工程】走近演化过程模型:软件开发的不断进化之路
【软件工程】走近演化过程模型:软件开发的不断进化之路

热门文章

最新文章