You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

const作为变量声明与将const作为值赋值给var变量的区别是什么?

const 作变量声明 vs 作表达式(值)的区别

1. const list = [1,2,3]:标准ES6变量声明

  • 这是JavaScript里定义只读绑定变量的常规写法,const是声明关键字,用来创建一个块级作用域的变量。
  • 关键特性:变量的「引用」无法被重新赋值(比如不能写list = [4,5,6]),但如果它指向数组、对象这类引用类型,内部的元素/属性是可以修改的——比如执行list.push(4)后,数组会变成[1,2,3,4],这完全合法。

2. var list = const[1,2,3]:语法错误(或混淆了const断言)

  • 首先明确:标准JavaScript中这种写法直接报错,因为const是声明关键字,不能作为表达式放在赋值运算符右侧使用。
  • 如果你是想实现TypeScript/ES2024+中的const断言(把值锁定为字面量类型,禁止类型自动拓宽),正确写法是var list = [1,2,3] as const。这种场景下的特性:
    • 数组会被推断为只读字面量数组(类型为readonly [1,2,3]),数组内的元素无法被修改(比如list[0] = 0会触发错误)。
    • 但因为用var声明变量,list本身可以被重新赋值(比如list = [4,5,6]是允许的)。

核心差异对比

写法合法性变量引用是否可重赋值数组内容是否可修改
const list = [1,2,3]标准JS合法否是
var list = [1,2,3] as const(修正后)TS/ES2024+合法是否

内容的提问来源于stack exchange,提问作者Yugraaj Sandhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:27:22