JavaScript中const声明常量的用法与限制

作者:木棉时间:2026-10-30 07:15:23浏览:571

本文详解JavaScript ES6中const关键字的用法。const声明的变量在初始化后不可重新赋值,否则抛出SyntaxError。需注意const仅保证引用地址不变,对象或数组的内容仍可修改。此外,const要求声明时必须初始化,否则也会报错。

const关键字概述

ES6引入了第三个声明变量的关键词,其行为与let相似,即const。

const的基本用法与对象修改

首先来看其基本使用方式:


const c1 = 1; 
const c2 = {}; 
const c3 = []; 


Object.getOwnPropertyDescriptor(window,"c1") 
//Object {value: 1, writable: false, enumerable: true, configurable: false} 

上述示例表明,对已赋值的c2再次进行赋值操作是被禁止的。然而,由于c2是一个对象,其内部属性是可以被修改的,具体示例如下:


c2.p1 = 1; 

同理,对于数组类型的c3,也可以向其内部添加元素,因为const仅限制引用地址不变。

声明与初始化的强制要求

使用const声明时存在一个关键约束:声明与初始化必须同时进行,即声明的同时必须赋予初始值。


'use strict'; 
 
const c4;//Uncaught SyntaxError: Unexpected token ; 

即使省略分号,上述错误依然会发生。此处暂不探讨非strict mode下的特殊情况,感兴趣者可自行验证。

const与let的区别及错误处理

const声明的变量与let类似,主要区别在于const变量仅在声明时允许赋值,后续不可随意修改,否则将引发SyntaxError(语法错误)。


const MAX_CAT_SIZE_KG = 3000; // 正确

MAX_CAT_SIZE_KG = 5000; // 语法错误(SyntaxError)
MAX_CAT_SIZE_KG++; // 虽然换了一种方式,但仍然会导致语法错误

规范设计合理,使用const声明变量时必须提供初始值,若未赋值,同样会抛出语法错误。


const theFairest; // 依然是语法错误,你这个倒霉蛋

作者最新文章