JavaScript对象是存储键值对的数据结构,常用字面量、Object构造函数和Object.create()创建;属性可通过点语法或方括号访问;支持in操作符检查、delete删除及for...in/Object.keys等遍历;属性特性由描述符控制。

JavaScript对象是存储键值对的数据结构,用来表示现实中的实体或逻辑上的数据集合。每个键(也叫属性名)对应一个值,值可以是任意类型,包括函数(这时称为方法)。
如何创建JavaScript对象
有多种方式创建对象,常用的是字面量语法和构造函数:
-
对象字面量:最简洁直观的方式,用花括号
{}包裹属性和值。const person = { name: "张三", age: 25 }; -
Object构造函数:用
new Object()创建空对象,再逐个添加属性。const car = new Object(); car.brand = "Toyota"; car.year = 2022; -
Object.create():基于指定原型创建新对象,适合需要继承关系的场景。
const animal = { eats: true }; const dog = Object.create(animal); dog.barks = true;
如何访问和设置对象属性
属性名可以是字符串、数字或标识符,访问方式分点语法和方括号语法:
-
点语法:适用于属性名是合法标识符(如
name、userAge)且已知的情况。person.name→ 获取值;person.city = "北京"→ 添加或修改属性 -
方括号语法:适用于属性名含特殊字符、空格、变量或动态生成的情况。
person["full name"] = "张三丰";const key = "age"; person[key] = 26;
如何检查、删除和遍历对象属性
操作对象时,常需判断属性是否存在、安全删除或遍历所有可枚举属性:
立即学习“Java免费学习笔记(深入)”;
-
检查属性存在:
"name" in person返回布尔值(包含原型链);person.hasOwnProperty("name")只检查自身属性 -
删除属性:
delete person.age移除该属性(慎用,性能略低,且不能删除不可配置属性) -
遍历属性:
•for...in:遍历自身及原型链上可枚举的属性(常配合hasOwnProperty过滤)
•Object.keys(obj):返回自身可枚举属性名数组
•Object.values(obj)和Object.entries(obj):分别获取值数组和键值对数组
对象属性的特性与控制
每个属性都有描述符(descriptor),决定它是否可读、可写、可枚举、可配置。用 Object.defineProperty() 可精细控制:
-
Object.defineProperty(person, "id", { value: 1001, writable: false, enumerable: false })
此时person.id不可修改、不参与for...in或Object.keys() -
Object.getOwnPropertyDescriptors(obj)可一次性获取所有属性的完整描述符
对象是JavaScript中组织数据的核心机制,理解创建方式、访问规则和属性控制,是写出清晰、健壮代码的基础。不复杂但容易忽略细节。










