标签
内容简介
《JavaScript框架设计》是前端开发者司徒正美(钟钦成)长期积累的原创技术著作,第2版在第1版基础上删改增补,围绕“如何从零搭起一个 JavaScript 框架”展开,逐层拆解前端框架内部那些看不见的地基。全书共十六章:从种子模块讲起,讨论模块化组织、对象扩展、数组化、类型判定与 domReady、无冲突处理;接着是语言模块,演示对字符串、数组、数值、函数、日期等原生类型的扩展与能力修复;随后进入浏览器嗅探与特征侦测、类工厂与各种继承方案、选择器引擎、节点模块、数据缓存模块、样式模块与属性模块,把 jQuery 时代的核心子系统一个个拆开看实现。事件系统部分同时覆盖 PC 端与移动端事件,并专门分析 jQuery 的事件体系;异步模型一章延伸到 Promise 与后续异步方案;数据交互模块给出一个完整的 Ajax 实现;动画引擎、API 设计、插件化等内容则关系到框架的可用性与扩展性。后段进入 MVVM:静态前端模板、MVVM 动态模板、性能墙与复杂墙、组件方案,并横向比较 jQuery 时代组件、avalon2 组件与 React 组件三种思路。第1版出版于 2014 年,第2版修订于 2017 年,两版隔了三年,读者可按手头版本对读部分章节差异。
编辑推荐
市面上讲“怎么用框架”的书多到泛滥,讲“框架为什么这么写”的书却始终稀缺,这本是少数之一。它的价值不在教你调用 API,而在把 jQuery、avalon 这类框架的内部零件一个个拆开摆在你面前:domReady 到底怎么判断、选择器引擎怎么从字符串变成元素、类工厂为什么要绕那么多弯、事件系统怎样做冒泡与委托、模板怎样从静态字符串变成可更新的 DOM。作者司徒正美本人就是 avalon 框架的作者,写的是自己淌过的坑,所以细节密度高、判断有立场,读到“这里为什么要这样设计”时往往能给出取舍理由,而不是转述文档。第2版新增了移动端事件、React 组件方案与性能墙等内容,把 jQuery 时代与 MVVM 时代串成一条线,读者能看清前端框架三十年(编者按:实为二十余年)演化中哪些问题始终没变。需要提醒的是,本书示例大量基于 ES5 时代的写法与作者的 avalon 体系,对只写 React/Vue 业务代码、且不熟悉原型链与兼容性处理的读者会有门槛;把它当作“读懂老框架源码”的钥匙,体验最好。
适合谁读
适合
- 有一到三年经验、想弄清框架底层实现的前端开发者
- 需要维护或二次开发 jQuery 类老项目的工程师
- 准备面试、想系统补足 JavaScript 语言与 DOM 底层知识的人
- 计算机相关专业高年级学生与培训机构的进阶课程学员
- 对框架设计方法论感兴趣、打算自研内部组件库的技术负责人
不适合
- 零基础读者:书中默认你熟悉 JavaScript 语法与 DOM 操作
- 只想学 React 或 Vue 业务写法、不关心实现原理的人
- 期望全书基于 ES6+ 与 TypeScript 现代语法的读者,本书示例仍以 ES5 为主
阅读建议
- 按章节顺序读前三章打底,之后再按兴趣跳读选择器、事件、模板等重点章节,不必逐页死磕。
- 读每个模块时打开对应开源框架源码对照,边读边在控制台复现作者的最小实现。
- 第2版与第1版章节差异较大,若两版都在手,先读第2版的移动端事件与组件章节。
- 遇到兼容性代码不必逐条记忆,重点理解“为什么要做特征侦测”这一层设计思路。
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 第1章 种子模块(模块化、功能介绍、对象扩展、数组化、类型的判定、domReady、无冲突处理、总结)
- 第2章 语言模块(字符串的扩展与修复:repeat、byteLen、pad、quote、trim与空白;数组、数值、函数、日期的扩展与修复)
- 第3章 浏览器嗅探与特征侦测(浏览器判定、document.all趣闻、事件的支持侦测、样式的支持侦测、jQuery一些常用特征的含义)
- 第4章 类工厂(JavaScript对类的支撑、各种类工厂的实现:P.js、JS.Class、simple-inheritance、def 等)
- 第5章 选择器引擎
- 第6章 节点模块
- 第7章 数据缓存模块
- 第8章 样式模块
- 第9章 属性模块
- 第10章 事件系统(PC端与移动端事件、jQuery的事件系统)
- 第11章 异步模型
- 第12章 数据交互模块(一个完整的Ajax实现)
- 第13章 动画引擎
- 第14章 MVVM与前端模板(静态模板、MVVM的动态模板)
- 第15章 性能墙与复杂墙、组件(jQuery时代的组件方案、avalon2的组件方案、react的组件方案)
- 第16章 API设计、插件化与框架展望
常见问题
这本书和《JavaScript高级程序设计》有什么区别?
《高级程序设计》讲语言与浏览器 API 的全面用法,属于“学会用”;本书讲框架内部如何组织这些能力,属于“学会造”。建议先用前者打基础,再用本书进阶。
第1版和第2版应该买哪一版?
第2版(ISBN 9787115464293,2017 年,457 页)内容更完整,新增移动端事件、React 组件方案、性能墙等章节,建议优先选第 2 版;第 1 版为 2014 年 437 页版本。
书里的技术是不是已经过时了?
示例确实以 ES5 与 jQuery 时代写法为主,但模块化、事件模型、模板编译、组件化这些问题的设计思路并不过时,读懂老框架反而更容易看清现代框架在解决什么。
需要先读完 jQuery 源码吗?
不需要。书中会给出关键片段与作者自己的实现,先具备 JavaScript 原型、闭包、DOM 事件的基本功即可跟上大部分章节。
作者司徒正美是谁?
本名钟钦成,国内知名 JavaScript 专家,MVVM 框架 avalon 的作者,长期在前端框架与组件化方向做实践与分享,本书是其代表作。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。
作者简介
司徒正美
作者
司徒正美是国内前端开发领域的技术作者,公开资料有限,其已知代表作是《JavaScript框架设计(第2版)》。该书属于编程设计类作品,围绕JavaScript框架的设计思路与实现方法展开,面向希望深入理解前端框架底层机制的学习者与开发者。从题材上看,作者关注的是框架层面的抽象与工程实践,而非零散语法技巧的罗列,写作上偏向以设计原理带动代码实现,帮助读者建立对框架结构的整体认识。由于库内仅收录其作品一种,其生平背景、职业经历等信息暂无从查证,读者可结合该书内容了解其在JavaScript框架设计方面的技术积累与表达特点。