3. 使用const定义对象时的注意事项 对象属性的可变性:虽然你不能将const声明的对象引用指向另一个对象,但你可以修改对象的属性。例如,在上面的person对象中,你可以修改name或age属性的值,但不能将person重新赋值为另一个对象。 冻结对象:如果你希望一个对象完全不可变(即不仅不能重新赋值,也不能修改其属性),你可...
原因:const定义了一个对象a,由于const保证引用地址不可变的因素,所以可修改该地址内的属性,当不可重新赋值一个对象(引用地址)。
通常,我们会使用`const`关键字来声明存储对象的变量,以避免变量被重新赋值。虽然`const`禁止变量被重新赋值,但它对对象的修改没有任何影响。🚫例如: ```javascript const obj = { name: "孙悟空" }; const obj2 = obj; obj2 = {}; // 这会报错,因为obj2是const的,不能重新赋值 ```通过使用`const`...
Const对象是使用`const`关键字创建的对象。它们与普通对象类似,但有一个重要区别,它们不能被重新赋值。这意味着一旦创建了const对象,其属性将无法更改。 Const对象在需要确保对象中的数据不会更改的情况下很有用。例如,你可以使用const对象来存储配置设置或不应修改的其他数据。 要创建const对象,你可以使用以下语法: ...
一、先来看一下const方式来声明基本类型常量 代码: 1const name = 'jack'2name = 'lucy'//修改name常量 运行结果: 可以看到,控制台报错了,所以基本类型常量一旦声明复制,就不能在被修改 二、再来用const方式来声明复杂类型常量(即对象常量) 代码:
通过JSON.stringify将数组序列化为JSON字符串,再通过JSON.parse将字符串转换回数组。此方法确保了数组中的每个元素都进行了深拷贝。需要注意的是,这种方法不适用于数组中包含不可序列化对象的情况。总结而言,为了在对const数组对象赋值后实现深拷贝,避免修改一个对象影响到另一个,可以使用数组的map函数...
constobj={a:100};obj.name='abc';obj.a=10000;console.log(obj); 一、声明对象的两种方法 letobj={'name':'frank','age':18}console.log(姓名:"+name+",年龄:"+age"); letobj=newObjeck({'name':'frank','age':18})console.log(姓名:'name',年龄:'age'); ...
const a = [1,2,3,4,5,6] let b = a delete b[1] console.log(a) 执行结果: [1, 空白, 3, 4, 5, 6] 从上面例子看出,在对const 数组对象a赋值给b后,对b做的修改,依然会影响a。原因为对于数组类型赋值时为浅拷贝,只是将a的栈内存地址拷贝到b,堆上的数据并未拷贝,此时b依然指向跟a在堆上...
使用const 声明的对象属性是可以被修改的。const 声明的变量只是保证其为只读引用,这样只能保证内存的引用地址不被改变,但是其内部的属性还是可以被修改和创建的。 例如说 const a = {b: 1},我们就可以修改 a.b 的值。但是如果说声明的是一些基本类型的值,比如说 const a = 1 则不能去修改变量 a 的值了...