JavaScript 对象基础
1. 什么是对象
对象(object
)是 JavaScript 中的一种数据类型,可以理解为无序的数据集合。与数组不同,数组是有序的数据集合,而对象则是通过键值对的方式来存储数据的。
对象通常用来描述某个具体事物,它既可以包含静态特征(属性),也可以包含动态行为(方法)。
- 属性(Property):用来描述事物的特征,如人的姓名、年龄、性别等。
- 方法(Method):用来描述事物的行为,如吃饭、睡觉、打代码等。方法本质上是对象中的函数。
例子:
let teacher = {
name: "王老师",
age: 30,
gender: "男",
teach: function() {
console.log("在教书");
}
};
总结:
- 对象是一种无序的数据集合。
- 可以用对象来详细描述某个事物的属性和行为。
2. 对象使用
2.1 对象的声明
对象通常使用花括号 {}
进行声明,这种方式称为对象字面量语法。可以在声明时直接给对象添加属性和方法:
语法:
let 对象名 = {
属性名: 属性值,
方法名: function() {
// 方法逻辑
}
};
2.2 对象的属性与方法
对象由属性和方法组成:
- 属性(名词):描述对象的特征。
- 方法(动词):描述对象的行为,方法的本质是对象内部的函数。
例子:
let phone = {
brand: "Apple",
color: "black",
call: function() {
console.log("打电话中...");
}
};
2.3 对象的增删改查
对象中的属性可以被增、删、改、查,操作语法如下:
- 查:
对象名.属性名
或对象名['属性名']
- 增:
对象名.新属性名 = 值
- 改:
对象名.属性名 = 新值
- 删:
delete 对象名.属性名
例子:
let car = {
brand: "Toyota",
color: "red"
};
// 增加属性
car.price = 20000;
// 修改属性
car.color = "blue";
// 删除属性
delete car.color;
// 查询属性
console.log(car.brand); // 输出 "Toyota"
总结:
- 查找属性的方式有两种:点语法
对象.属性
和方括号语法对象['属性']
。 - 增加和修改属性的语法一致,判断标准是对象中是否已有该属性。
- 删除属性使用
delete
关键字。
2.4 对象中的方法
对象中的方法表示对象的行为,通常通过以下语法来调用对象方法:
对象名.方法名();
方法可以像函数一样传递参数,也可以返回值。与函数使用方法一致。
例子:
let person = {
name: "小明",
sayHi: function() {
console.log("你好,我是" + this.name);
}
};
person.sayHi(); // 输出 "你好,我是小明"
3. 遍历对象
3.1 for...in
遍历
JavaScript 中可以使用 for...in
语句来遍历对象的属性。for...in
遍历时会遍历对象的所有可枚举属性,包括原型链上的属性(如果存在)。
语法:
for (let 属性名 in 对象名) {
console.log(属性名 + ": " + 对象名[属性名]);
}
例子:
let student = {
name: "小明",
age: 18,
grade: "高三"
};
for (let key in student) {
console.log(key + ": " + student[key]);
}
总结:
for...in
用于遍历对象属性。for...in
中的变量key
是对象的属性名,对象名[key]
可以得到属性对应的值。
4. 内置对象
JavaScript 提供了一些内置对象供开发者使用,如 Math
、Date
、String
、Array
等。这些内置对象包含各种属性和方法,可以直接调用来处理相应的数据。
4.1 Math
对象
Math
对象是一个“数学”对象,提供了一系列数学运算的方法:
Math.random()
:生成 0 到 1 之间的随机数(不包括 1)。Math.floor()
:向下取整。Math.ceil()
:向上取整。Math.max()
:返回一组数中的最大值。Math.min()
:返回一组数中的最小值。Math.abs()
:绝对值。
例子:
console.log(Math.random()); // 生成一个随机数
console.log(Math.floor(4.7)); // 向下取整,输出 4
console.log(Math.max(1, 2, 3)); // 输出 3
4.2 生成任意范围的随机数
可以通过 Math.random()
来生成指定范围的随机数:
语法:
Math.floor(Math.random() * (最大值 - 最小值 + 1)) + 最小值;
例子:
let randomNum = Math.floor(Math.random() * (10 - 1 + 1)) + 1; // 生成 1 到 10 的随机数