javascript操作object本质是引用类型,变量存内存地址;推荐用{}创建对象;动态增删改键值对可用点语法、方括号语法或object.assign();安全读取建议用hasownproperty()或可选链;删除用delete,遍历优先用object.keys()或object.entries()。

JavaScript 中操作 Object 存储键值对,本质是利用其“引用类型”特性:变量保存的是对象在内存中的地址,而非数据本身。这意味着多个变量可以指向同一对象,修改任一变量的属性,其他变量也会看到变化。
用字面量或构造函数创建空对象
最常用的是对象字面量 {},简洁安全;new Object() 功能相同但不推荐,写法冗长且易与原始类型混淆。
-
✅ 推荐:
const user = {}; -
❌ 不必要:
const user = new Object();
动态添加/修改键值对的三种方式
Object 的键名会自动转为字符串(Symbol 除外),值可以是任意类型,包括函数、数组、其他对象甚至 undefined。
-
点语法:适用于键名是合法标识符(如
name、age),不能用变量或含特殊字符的键:user.name = "Alice"; -
方括号语法:支持动态键名,适合变量、空格、短横线等:
user["full-name"] = "Alice Smith";或const key = "email"; user[key] = "a@example.com"; -
Object.assign():批量合并属性,常用于浅拷贝或初始化:
Object.assign(user, { id: 101, role: "admin" });
安全读取和判断键是否存在
直接访问不存在的属性返回 undefined,但不能区分“值就是 undefined”和“键不存在”。建议结合 in 操作符 或 hasOwnProperty() 判断。
-
"name" in user—— 检查自身及原型链上的所有可枚举属性 -
user.hasOwnProperty("name")—— 只检查对象自身的属性(更常用) -
user?.name(可选链)—— 防止访问嵌套属性时报错,如user?.profile?.city
删除键值对与遍历对象
用 delete 操作符移除属性,注意它只影响当前对象,不影响原型;遍历时优先使用 for...in(带 hasOwnProperty 过滤)或现代方法 Object.keys() / Object.entries()。
-
delete user.age;—— 成功返回 true,失败(如不可配置属性)返回 false for (const key in user) { if (user.hasOwnProperty(key)) console.log(key, user[key]); }Object.entries(user).forEach(([k, v]) => console.log(k, v));
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











