数组与对象
对象基础
理解对象创建、属性访问、方法定义
对象基础
JavaScript 对象是键值对的集合,除了原始类型外的所有值都是对象。
学完本章你将: 理解对象创建、属性访问、方法定义。
创建对象
javascript
// 对象字面量(最常用)
let person = {
name: "Alice",
age: 25,
isStudent: false,
};
// new 构造函数
let obj = new Object();
obj.key = "value";
// Object.create
let prototype = { greet() { return "Hello"; } };
let child = Object.create(prototype);
console.log(child.greet()); // "Hello"
属性访问
javascript
let user = {
"first name": "Alice", // 带空格的键需要引号
age: 25,
};
// 点号访问
console.log(user.age); // 25
// 方括号访问(支持变量和特殊字符)
console.log(user["first name"]); // "Alice"
let key = "age";
console.log(user[key]); // 25
// 动态 key
let field = "email";
user[field] = "alice@example.com";
console.log(user.email); // "alice@example.com"
属性简写与方法
javascript
let name = "Bob";
let age = 30;
// ES6 属性简写
let user = {
name, // 等于 name: name
age, // 等于 age: age
// 方法简写
greet() {
return `Hello, I'm ${this.name}`;
},
// 计算属性名
["get" + "Age"]() {
return this.age;
},
};
console.log(user.greet()); // "Hello, I'm Bob"
console.log(user.getAge()); // 30
增删查改
javascript
let car = { brand: "Toyota" };
// 增加属性
car.model = "Camry";
car["year"] = 2024;
// 修改属性
car.brand = "Honda";
// 删除属性
delete car.model;
// 检查属性
console.log("brand" in car); // true
console.log(car.hasOwnProperty("brand")); // true
console.log(car.color !== undefined); // false
console.log(car); // { brand: "Honda", year: 2024 }
遍历对象
javascript
let person = { name: "Alice", age: 25, city: "北京" };
// 遍历键
for (let key in person) {
console.log(key, person[key]);
}
// Object 方法
console.log(Object.keys(person)); // ["name", "age", "city"]
console.log(Object.values(person)); // ["Alice", 25, "北京"]
console.log(Object.entries(person));
// [["name","Alice"], ["age",25], ["city","北京"]]