javascript对象是什么_如何创建和操作对象

JavaScript对象是存储键值对的动态引用类型实体,具备属性和方法;可通过字面量、构造函数或class创建;支持点号/方括号访问与修改属性;常用遍历方法包括for...in、Object.keys/values/entries;需注意对象无序性及浅深拷贝差异。

JavaScript 对象是存储键值对(key-value)的容器,用来表示现实世界中的事物或数据结构,比如用户信息、配置项、DOM 元素等。它不是简单的数据集合,而是具备属性(property)和方法(method)的动态实体。

对象的基本特征

对象是引用类型,多个变量可以指向同一个对象,修改其中一处会影响所有引用;对象的属性名默认是字符串(也可用 Symbol),值可以是任意类型,包括函数(此时叫方法)。

创建对象的常用方式

字面量语法(最常用):简洁直观,适合一次性定义简单对象。

let user = { name: "张三", age: 25, sayHello: function() { console.log("你好"); } };

构造函数方式:适合需要复用结构、批量创建同类对象的场景。

let person = new Object();
person.name = "李四";
person.age = 30;

使用 class(ES6+):更接近传统面向对象写法,适合复杂逻辑封装。

class Car {
  constructor(brand, year) {
    this.brand = brand;
    this.year = year;
  }
  start() { console.log(this.brand + " 启动了"); }
}
let myCar = new Car("Toyota", 2025);

访问和修改对象属性

  • 点号访问(.):适用于属性名是合法标识符且已知的情况,如 user.name
  • 方括号访问([]):支持动态属性名、含空格或特殊字符的键,如 user["full name"]user[propertyName]
  • 添加新属性:直接赋值,如 user.city = "北京"
  • 删除属性:用 delete user.age(慎用,性能略低)

遍历与检测对象

常用方法有:

  • for...in:遍历自身及原型链上可枚举的属性(注意加 hasOwnProperty 过滤)
  • Object.keys(obj):返回自身可枚举属性名数组
  • Object.values(obj):返回自身可枚举属性值数组
  • Object.entries(obj):返回 [key, value] 数组,适合解构或循环
  • 判断是否为对象:obj !== null && typeof obj === 'object' && !Array.isArray(obj)

不复杂但容易忽略

对象本质是无序键值对集合(ES2015 起,整数键按数字顺序,其余按插入顺序),属性名会被自动转为字符串;浅拷贝用 Object.assign({}, obj) 或展开运算符 {...obj};深拷贝需借助 JSON 方法(限制多)或结构化克隆(structuredClone)等方案。