红宝书第十三讲:详解JavaScript核心对象:Array、Object、Date、RegExp
资料取自《JavaScript高级程序设计(第5版)》。
查看总目录:红宝书学习大纲
一、Object:万物皆对象的“盒子”
Object是JavaScript中最基础的数据容器,像动态存储的抽屉,可随时添加/删除属性,支持键值对存储 1。
示例:创建用户信息对象
// 方式1:字面量直接声明
const user = {name: '小明',age: 20,getInfo: function() {return `${this.name}今年${this.age}岁`;}
};
console.log(user.getInfo()); // "小明今年20岁"// 方式2:构造函数new Object()
const car = new Object();
car.brand = 'Toyota';
car.drive = () => console.log('行驶中...');car.drive(); // "行驶中..."
1: 参考资料3说明对象通过动态属性管理数据
二、Array:有序的“列表清单”
数组是按顺序排列的集合,每个元素有索引(从0开始),支持动态增删改查 2。
示例:操作学生分数数组
// 创建数组(两种方式)
const scores1 = [85, 92, 78]; // 字面量快捷方式
const scores2 = new Array(70, 88); // 构造函数// 常用方法
scores1.push(95); // 末尾添加 → [85, 92, 78, 95]
scores1.pop(); // 删除末尾 → [85, 92, 78]
const highScores = scores1.filter(score => score > 90); // 过滤 → [92]
const str = scores1.join("、"); // 转字符串 → "85、92、78"// 用map生成新数组
const comments = scores1.map(score => score >= 80 ? "优秀" : "待提高"
); // ["优秀", "优秀", "待提高"]
2: 参考资料6详细列出了数组的push/filter/map等方法
三、Date:时间管理的“日历”
Date对象用于处理日期和时间的计算,能精确到毫秒 3。
示例:记录事件时间
// 创建当前时间
const now = new Date();
console.log(now); // 输出类似:Thu Dec 07 2023 14:30:00 GMT+0800// 指定日期(注意月份从0开始)
const birthday = new Date(2000, 0, 1); // 2000年1月1日
console.log(birthday.getFullYear()); // 2000// 计算时间差(毫秒为单位)
const diff = now - birthday;
const years = Math.floor(diff / (1000*60*60*24*365));
console.log(`年龄:${years}岁`);
3: 参考资料1和2重点描述了Date类型的方法(如getFullYear())
四、RegExp:文字侦探“正则表达式”
RegExp用模式匹配规则来查找或验证字符串,类似通配符的增强版 4。
示例:验证邮箱格式
// 创建正则表达式(两种方式)
const emailPattern1 = /^[a-zA-Z0-9_]+@[a-z]+\.[a-z]+$/; // 字面量
const emailPattern2 = new RegExp('^\\w+@[a-z]+\\.[a-z]+$'); // 构造函数// 测试字符串是否符合规则
console.log(emailPattern1.test('user@example.com')); // true
console.log(emailPattern1.test('invalid.email')); // false// 提取字符串中的数字
const text = "订单号:7890,金额:¥560";
const numbers = text.match(/\d+/g);
console.log(numbers); // ["7890", "560"]
4: 参考资料1和2提到RegExp的test方法和实例属性
目录:总目录
上篇文章:红宝书第十二讲:详解JavaScript中的工厂模式与原型模式等各种设计模式
下篇文章:红宝书第十四讲:详解JavaScript集合类型:Map、Set、WeakMap
脚注
《JavaScript高级程序设计(第5版)》(第8章对象属性)讨论了对象属性管理方式。 ↩︎ ↩︎
《JavaScript高级程序设计(第5版)》(第6章Array类型)详细说明数组操作方法。 ↩︎ ↩︎
《JavaScript高级程序设计(第5版)》中的“Date类型”章节描述时间处理方法。 ↩︎ ↩︎
《JavaScript高级程序设计(第5版)》介绍了RegExp的创建和实例方法。 ↩︎ ↩︎