Skip to content

第三章|对象、集合与文本数据 ​

学会函数之后,本章让函数处理有结构的数据。先从对象和数组建立组织方式,再选择 Map/Set,最后处理文本、模式、日期与数据交换。它们都属于 JavaScript 常见数据工作,但每种数据的“相等”“长度”“复制”含义并不相同。

从数据问题选择章节 ​

text
一条记录 → 对象与属性
一列有序值 → 数组与转换
键到值 / 唯一成员 → Map / Set
文本 → 字符串 / Unicode → 正则
时间 → Date / Intl
传输与隔离 → JSON / 结构化克隆

数组方法大量使用上一章的回调。字符串进一步区分码元、码点与用户看到的字符;日期区分时间点和本地表示;JSON 负责交换格式,不能顺手承担所有对象复制任务。

阅读顺序 ​

  1. 对象基础:属性读写、存在性、可选链、对象与数组解构、枚举与浅复制。
  2. 数组:从位置操作到转换与聚合,完整保留方法覆盖,深入空槽、变异与回调边界。
  3. Map、Set 与弱集合:键身份、去重规则、顺序、集合运算和回收关联。
  4. 字符串与 Unicode:常见字符串操作、编码单位、规范化、字素分段和模板标签。
  5. 正则表达式:语法、捕获与反向引用、Unicode集合、扫描位置、断言、替换及回溯成本。
  6. 日期与 Intl:解析、时间戳、时区、日历变化和地区格式。
  7. JSON 与复制:序列化损失、恢复协议、浅复制和结构化克隆边界。

各篇先讲能够直接运行的小案例,再展开不常见边界。较新 API 都标出目标环境要求;异步数组来源、二进制视图、原型与属性描述符分别连接到后续章节,不用跳过前置知识硬背。

容器相同,不代表关系相同 ​

这一章反复检查的是数据关系:filter的新数组可能仍共享原元素,Map覆盖最后数据却保持首次键顺序,字符串截取一个码点可能留下半个可见字,JSON往返可能把两个共同指向变成两个独立对象。每一项都有可以运行的对照例子。

第一次阅读先跟着正常数据路径,再回到边界:数组看“开始时的长度”和“访问时的值”,正则看失败后退到哪里,Date看进位与业务月末政策,JSON看每个节点如何返回。这样少见行为也有可解释的来源,能与常用方法连成一套知识。

读完后的判断能力 ​

面对一份数据,能解释为何选对象、数组或 Map;知道转换是否修改输入、是否保留嵌套身份;不会把字符数当 UTF-16 长度,也不会把日期显示文本当稳定传输格式;能指出一次 JSON 往返具体损失哪些值。

各篇练习只验证知识,不安排综合项目。完成后查看本章答案,再进入第四章:对象机制与原型。

用心记录每一步成长