ES6-const

一、基本用法

复制代码
- 语法:
	const 标识符=初始值;
	注意:const一旦声明变量,就必须立即初始化,不能留到以后赋值
- 规则:
	1.const 声明一个只读的常量,一旦声明,常量的值就不能改变
	2.const 其实保证的不是变量的值不变,
	  而是保证变量指向的内存地址所保存的数据不允许改动
  • 重点
java 复制代码
		不可变值(相当于常量):简单类型的数据(数值、字符串、布尔值)
		数据结构可变:  复合类型的数据(主要是对象和数组)

二、本质

java 复制代码
- const实际上保证的,并不是变量的值不得改动,
  而是变量指向的那个内存地址所保存的数据不得改动。
	1.对于简单类型的数据(数值、字符串、布尔值),
	  值就保存在变量指向的那个内存地址,因此等同于常量。
	2.对于复合类型的数据(主要是对象和数组),
	  变量指向的内存地址,保存的只是一个指向实际数据的指针,
	  const只能保证这个指针是固定的(即总是指向另一个固定的地址),
	  至于它指向的数据结构可变化。

三、示例

1)数组

js 复制代码
const arr=[]
console.log(arr) // []
arr.push('wyt')
console.log(arr) //['wyt']

2)对象

javascript 复制代码
//添加name属性
  const obj = {}
  obj.name = "wyt"
  console.log(obj);
  • 冻结对象

    js 复制代码
    const foo = Object.freeze({});
    // 常规模式时,下面一行不起作用;
    // 严格模式时,该行会报错
    foo.prop = 123;

四、规则

java 复制代码
- 同let一样(若忘记,可以看ES6-let那篇文章)
	- 同一个作用域内不允许重复声明
	- 不存在变量提升即必须先声明再使用,但是const必须赋初始值
	- 暂时性死区
相关推荐
Bigger5 小时前
Tauri (26)——托盘图标总对不上系统主题?一行 Template Image 搞定
前端·rust·app
kyriewen7 小时前
面试官问你:“AI 能写 80% 的代码了,公司为什么还需要你?”
前端·javascript·面试
甲维斯8 小时前
又升级咯!坦克大战2026,科技与复古并存!
前端·人工智能·游戏开发
搬砖的码农11 小时前
(08)为什么我的 Agent 一跑后台服务就卡死
前端·agent·ai编程
飘尘11 小时前
前端转全栈(Java 后端)必须要知道的:开发中的锁机制与分布式并发控制
前端·后端·全栈
亲亲小宝宝鸭11 小时前
前端性能监控:web-vitals
前端·性能优化·监控
陆枫Larry11 小时前
可滚动页面背景填不满:`height: 100vh` vs `min-height: 100vh`
前端
Patrick_Wilson11 小时前
Squash Merge 的血缘陷阱:为什么删掉的代码又活了过来
前端·git·程序员
kyriewen12 小时前
今天的科技圈,全在抢英伟达的饭碗
前端·面试·ai编程