网站地图    收藏   

主页 > 采坑 > 前端采坑 > javascript常见API采坑 >

js的const关键词定义对象{},但是内容还能赋值

来源:未知    时间:2024-02-06 15:21 作者:小飞侠 阅读:

[导读] js的es6新增的 const 关键词是定义常量的,不可修改之量。 但是当用 const 定义 {} 对象时候,其内容是能修改的,如下代码: consto1={};o1={};//TypeError:给常量赋值consto2={};o2.name=Jake;console.l...

js的es6新增的const关键词是定义常量的,不可修改之量。

但是当用const定义{}对象时候,其内容是能修改的,如下代码:

const o1 = {};o1 = {}; // TypeError: 给常量赋值
const o2 = {};
o2.name = 'Jake';
console.log(o2.name); // 'Jake'

那么如何保证const定义的对象其子内容无法修改呢?

如果想让整个对象都不能修改,可以使用Object.freeze(),这样再 给属性赋值时虽然不会报错,但会静默失败:

const o3 = Object.freeze({});
o3.name = 'Jake';
console.log(o3.name); // undefined

由于const声明暗示变量的值是单一类型且不可修改,JavaScript运 行时编译器可以将其所有实例都替换成实际的值,而不会通过查询 表进行变量查找。谷歌的V8引擎就执行这种优化。


自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论