JavaScript 是一门非常灵活的编程语言,它可以在运行时修改许多东西,包括变量和函数。但是在某些情况下,我们需要确保某些值是不可变的。在 ES6 中,JavaScript 引入了一个新的关键字 const
,用于声明常量。然而,有些开发者会误认为 const
声明的常量是不可被重新定义的,这是一个常见的误解。
const
的正确理解
const
声明的常量实际上不能被重新赋值,但是它们并不是完全不可变的。比如,我们可以改变一个 const
常量所引用的对象的属性。
const person = { name: 'Alice', age: 20 }; person.age = 21; // 合法 console.log(person.age); // 21
在上面的例子中,person
常量所引用的对象可以改变其中的属性 age
,因为 const
表示的是变量的指向地址不可重新赋值,而不是变量所代表的对象不可变。
常量定义实践中的注意点
使用 const
声明常量的时候,我们需要注意以下几个方面:
- 对于基本类型(比如数字、字符串、布尔值等),常量的值不能被修改。
const num = 1; num = 2; // 报错:Assignment to constant variable.
- 对于复合类型(比如对象、数组等),常量的地址不能被修改,但是可以修改对象本身的属性。
const person = { name: 'Bob', age: 30 }; person = { name: 'Alice', age: 20 }; // 报错:Assignment to constant variable. person.age = 31; // 合法,修改对象本身的属性 console.log(person.age); // 31
- 避免使用
var
关键字声明变量,而应该使用let
或const
声明变量。
-- -------------------- ---- ------- -- ----- --- --- --- - -- -- ---- --- - ----- --- ---- - -- ----- ---- - -- -- ------------- ----- -- ----- -- - -----
- 如果需要声明一个不变的变量,建议使用
const
关键字,这样可以减少变量被错误修改的风险,提高代码的可读性和可维护性。
总结
在 JavaScript 中,const
关键字用于声明常量。常量的值不能被重新赋值,但是对于复合类型的常量,可以改变其所引用的对象的属性。我们应该注意使用 const
声明常量的注意点,并尽量避免使用 var
关键字声明变量。使用 const
声明常量可以提高代码的可读性和可维护性,减少变量被错误修改的风险。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645eff8e968c7c53b011f363