跳转至

对象与数组

对象基础

在JavaScript中,对象是一种复合数据类型,它允许你将多个值(可以是基本数据类型或其他对象)组合在一起。对象是键值对的集合,其中每个键(也称为属性)都映射到一个值。对象是JavaScript中非常重要的概念,因为它们允许你以结构化的方式组织和操作数据。

创建对象

在JavaScript中,你可以使用多种方式创建对象。最常见的方式是使用对象字面量(Object Literal)语法。

示例1:使用对象字面量创建对象

// 创建一个空对象
let person = {};

// 创建一个包含属性的对象
let person = {
    name: "Alice",  // 键为 "name",值为 "Alice"
    age: 25,        // 键为 "age",值为 25
    isStudent: true // 键为 "isStudent",值为 true
};

console.log(person.name); // 输出: Alice
console.log(person.age);  // 输出: 25

在这个示例中,我们使用对象字面量语法创建了一个包含三个属性的对象。每个属性都有一个键和一个值,键和值之间用冒号分隔,属性之间用逗号分隔。

示例2:使用构造函数创建对象

除了对象字面量,你还可以使用构造函数来创建对象。

// 使用构造函数创建对象
function Person(name, age, isStudent) {
    this.name = name;
    this.age = age;
    this.isStudent = isStudent;
}

// 创建一个新的Person对象
let person = new Person("Bob", 30, false);

console.log(person.name); // 输出: Bob
console.log(person.age);  // 输出: 30

在这个示例中,我们定义了一个构造函数Person,然后使用new关键字创建了一个新的Person对象。构造函数允许你创建具有相同结构的多个对象。

访问对象属性

你可以使用点符号(.)或方括号([])来访问对象的属性。

示例3:访问对象属性

let person = {
    name: "Alice",
    age: 25,
    isStudent: true
};

// 使用点符号访问属性
console.log(person.name); // 输出: Alice

// 使用方括号访问属性
console.log(person["age"]); // 输出: 25

在这个示例中,我们展示了如何使用点符号和方括号来访问对象的属性。点符号更简洁,但方括号允许你使用变量作为属性名。

修改对象属性

你可以通过赋值来修改对象的属性。

示例4:修改对象属性

let person = {
    name: "Alice",
    age: 25,
    isStudent: true
};

// 修改属性值
person.age = 26;
person["isStudent"] = false;

console.log(person.age); // 输出: 26
console.log(person.isStudent); // 输出: false

在这个示例中,我们修改了person对象的ageisStudent属性。

添加和删除属性

你可以随时向对象添加新属性,也可以删除现有属性。

示例5:添加和删除属性

let person = {
    name: "Alice",
    age: 25
};

// 添加新属性
person.job = "Developer";

// 删除属性
delete person.age;

console.log(person.job); // 输出: Developer
console.log(person.age); // 输出: undefined

在这个示例中,我们向person对象添加了一个新属性job,并删除了age属性。

练习题

  1. 简单题:创建一个对象car,包含属性makemodelyear,并打印出model的值。

  2. 中等题:创建一个构造函数Book,它接受titleauthorpages作为参数,并创建一个新的Book对象。

  3. 复杂题:创建一个对象student,包含属性nameagegrades(一个包含多个成绩的数组)。编写一个函数calculateAverage,计算并返回student的平均成绩。

总结

  • 对象是JavaScript中的一种复合数据类型,用于存储键值对。
  • 你可以使用对象字面量构造函数来创建对象。
  • 使用点符号方括号来访问对象的属性。
  • 你可以通过赋值来修改对象的属性。
  • 你可以随时添加删除对象的属性。

通过掌握这些基础知识,你将能够有效地使用JavaScript中的对象来组织和操作数据。