javascript对象如何创建_如何访问和修改对象的属性?

对象字面量{}最安全简洁,适合固定少量属性;方括号访问支持动态键和特殊字符名;属性增删改均通过赋值实现,delete慎用以免影响性能。

javascript对象如何创建_如何访问和修改对象的属性?

对象字面量是最常用也最安全的创建方式

直接用 {} 创建对象,适合属性名固定、数量不多的场景。它避免了构造函数可能带来的原型污染或 this 绑定问题,也比 new Object() 更简洁直观。

常见错误是误把逗号写成分号,或在末尾多加逗号导致旧版 IE 报错;另外属性名含空格或特殊字符时必须加引号,否则语法报错:

const user = {
  name: "Alice",
  "full name": "Alice Smith", // 必须加引号
  age: 30
};

方括号访问适用于动态属性名和带空格/符号的键

点号(.)只能访问合法标识符形式的属性名,比如 obj.name;一旦属性名是变量、含空格、以数字开头或含特殊字符,就必须用方括号语法 obj["full name"]obj[variable]

  • obj.key 等价于 obj["key"],但前者不能用于 obj["first name"]
  • 用变量作键时,只能用方括号:const key = "age"; obj[key]
  • 访问不存在的属性返回 undefined,不会报错

修改属性值和添加新属性语法完全一致

JavaScript 对象是可变的,无论属性是否已存在,赋值操作都直接生效。区别只在于:已存在属性是修改,不存在则是新增。

立即学习Java免费学习笔记(深入)”;

AMiner

AMiner

AMiner——新一代智能型科技情报挖掘与服务系统,能够为你提供查找论文、理解论文、分析论文、写作论文四位一体一站式服务。

下载

注意几个易错点:

  • undefinednull 对象调用点号或方括号会抛出 TypeError
  • 使用 Object.freeze(obj) 后无法新增或修改属性(静默失败,严格模式下报错)
  • 属性名是字符串,即使你写 obj[123],实际也是 obj["123"]
const config = { theme: "dark" };
config.theme = "light";        // 修改
config.version = "2.1";       // 新增
config["api timeout"] = 5000; // 新增,带空格的键

删除属性要用 delete,但慎用

delete obj.keydelete obj["key"] 可以移除属性,返回 true(即使属性不存在也返回 true)。但它会影响性能,尤其在 V8 引擎中会破坏隐藏类,导致后续属性访问变慢。

更推荐的做法是赋值为 undefinednull,或者用解构 + 剩余对象来“逻辑删除”:

const { password, ...safeUser } = user; // 移除 password 字段

真正需要物理删除时再用 delete,且要确认该对象后续不再高频读写。

https://www.php.cn/faq/1963832.html

发表回复

Your email address will not be published. Required fields are marked *