JS对象如何声明_JavaScript对象声明与属性访问详细指南

JavaScript对象通过字面量、构造函数或class声明,支持点和方括号两种属性访问方式,可动态增删属性,并利用可选链与空值合并确保安全访问。

JavaScript 中的对象是一种用于存储键值对的数据结构,广泛应用于数据建模、配置管理以及面向对象编程。正确声明对象并访问其属性是前端开发的基础技能。下面详细介绍 JavaScript 对象的声明方式和属性访问方法。

对象声明的常用方式

在 JavaScript 中,有多种方式可以创建对象,最常见的是对象字面量和构造函数。

1. 使用对象字面量(推荐)

这是最简洁、最常用的对象创建方式:

const person = {
  name: 'Alice',
  age: 25,
  city: 'Beijing'
};

2. 使用 new Object() 构造函数

也可以通过内置的 Object 构造函数来创建对象:

const person = new Object();
person.name = 'Bob';
person.age = 30;

3. 使用构造函数自定义类型

适合需要创建多个相似对象的场景:

function Person(name, age) {
  this.name = name;
  this.age = age;
}
const p1 = new Person('Charlie', 35);

4. 使用 ES6 的 class 语法

现代写法,语义更清晰:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}
const p2 = new Person('Diana', 28);

属性访问的两种方式

创建对象后,可以通过两种主要方式访问其属性:点表示法和方括号表示法。

1. 点表示法(.)

适用于属性名是合法标识符的情况:

console.log(person.name); // 输出: Alice
person.age = 26; // 修改属性

2. 方括号表示法([])

当属性名包含特殊字符或使用变量时必须使用:

console.log(person['city']); // 输出: Beijing
const key = 'age';
console.log(person[key]); // 输出: 25

// 属性名含空格或连字符
const user = {
  'full-name': 'John Doe',
  'phone number': '123-456-7890'
};
console.log(user['full-name']); // 必须用方括号

动态添加与删除属性

JavaScript 对象是动态的,可以在运行时添加或删除属性。

添加属性

person.job = 'Engineer';
person['isStudent'] = false;

删除属性

使用 delete 操作符:

delete person.city;
delete person['isStudent'];

注意:delete 成功返回 true,但对某些不可配置属性无效。

属性的安全访问与默认值

访问不存在的属性会返回 undefined,容易引发错误。建议进行安全检查。

使用可选链(?.)避免报错

const address = user?.address?.street;
// 如果 user 或 address 为 null/undefined,不会报错,返回 undefined

设置默认值

const userName = person.name ?? 'Unknown';

使用 ?? 操作符可为 undefined 或 null 提供默认值。

基本上就这些。掌握对象的声明和属性访问方式,能让你更灵活地处理数据结构。