当前位置: 首页 > news >正文

let、const【ES6】

‌“我唯一知道的就是我一无所知。” - 苏格拉底

目录

  • 块级作用域:
  • var、let、const的对比:
  • Object.freeze():

块级作用域:

块级作用域指由 {} 包围的代码块(如 if、for、while、单独代码块等)形成的独立作用域,‌ES6‌ 的 let 和 const 声明的变量仅在当前块内有效。在代码块内部声明的变量只能在该代码块内访问。

var、let、const的对比:

特性varletconst
作用域函数作用域(在函数内部使用var声明)/
全局作用域(在函数外/没有被任何函数包围)
块级作用域块级作用域
重复声明允许在同一个作用域多次声明一个变量不能(会报错)不能(会报错)
变量提升存在(初始为undefined)不存在传统意义上的变量提升不存在传统意义上的变量提升
暂时性死区(TDZ)不存在存在‌存在
重新赋值必须初始化且一旦赋值后就不能改变其值 【1】
全局对象的属性【与顶层对象挂钩】声明的全局变量会成为window对象的属性在全局作用域声明的变量不会成为window的属性,即window.let声明的变量打印出来是undefined与let同理

解释【1】:但是const如果声明的是一个对象(数组)那么对象或数组的内容是可以被修改的。这意味着我们可以添加、删除或更改对象属性,或者向数组中添加、删除或修改元素。但是,我们不能将const变量重新指向一个新的对象或数组。const 保证对象的引用不便,而不是值不变。
举例:

const myobj = {name: 'ssy',age: 18}myobj.name = 'kitty'console.log(myobj);

打印结果:
在这里插入图片描述
如果我就是不想让它改变呢?
可以使用我们的 Object.freeze() Object.freeze()方法,它用于创建一个不可变的对象‌。

Object.freeze():

Object.freeze()方法会冻结一个对象,冻结之后不能向这个对象添加新的属性,不能修改其已有属性的值,也不能删除已有属性。该方法返回被冻结的对象本身‌。Object.freeze()冻结的是对象的值,而不是变量的引用
注意:对于嵌套对象,Object.freeze()只会冻结第一层属性,而不会递归冻结。

const myobj = Object.freeze({name: 'ssy',age: 18})myobj.name = 'kitty'console.log(myobj);

在这里插入图片描述

http://www.lryc.cn/news/544076.html

相关文章:

  • openharmony5.0中hdf框架中实现驱动程序的动态加载和管理的技术细节分析
  • TVS管学习记录
  • 数据库表的各种设计
  • JWT使用教程
  • 【大模型系列篇】如何解决DeepSeek-R1结构化输出问题,使用PydanticAl和DeepSeek构建结构化Agent
  • 老旧android项目编译指南(持续更)
  • linux中安装部署Jenkins,成功构建springboot项目详细教程
  • AI开发利器:Anaconda
  • java网络编程--基于TCP协议的网络编程
  • PageHelper新发现
  • Redis 数据结构和使用详解(带示例)
  • 深度解读 Chinese CLIP 论文:开启中文视觉对比语言预训练
  • SpringBoot 2 后端通用开发模板搭建(异常处理,请求响应)
  • 【Oracle专栏】sqlplus显示设置+脚本常用显示命令
  • DeepSeek 助力 Vue3 开发:打造丝滑的页眉(Header)
  • JVM线程分析详解
  • 【备赛】点亮LED
  • 【音视频】编解码相关概念总结
  • Python爬虫(四)- Selenium 安装与使用教程
  • Node.js项目启动流程以及各个模块执行顺序详解
  • 各种类型网络安全竞赛有哪些 网络安全大赛的简称
  • 浅谈人工智能与深度学习的应用案例研究
  • vue2版本elementUI的table分页实现多选逻辑
  • AI数字人技术源码开发分享:革新短视频营销策略
  • 实验环境搭建集锦(docker linux ros2+强化学习环境+linux上单片机串口调试)
  • sql调优之数据库开发规范
  • 《Effective Objective-C》阅读笔记(上)
  • ClkLog里程碑:荣获2024上海开源技术应用创新竞赛三等奖
  • 【数据结构进阶】哈希表
  • STM32内存五区及堆栈空间大小设置(启动文件浅析)