标签
内容简介
《你不知道的JavaScript(上卷)》是“你不知道的JavaScript”系列的第一本,对应英文原书 You Don't Know JS: Scope & Closures 与 This & Object Prototypes 两部分内容。全书分为两大部分:第一部分“作用域与闭包”从编译原理入手,讲解引擎、编译器与作用域三者的协作方式,进而展开词法作用域、函数作用域与块作用域、变量提升、闭包与模块等主题,并附动态作用域、块作用域替代方案、this 词法等附录;第二部分“this 与对象原型”系统梳理 this 的绑定规则(默认绑定、隐式绑定、显式绑定、new 绑定及其优先级与例外),随后讨论对象的属性描述符、不变性、[[Get]]/[[Put]]、Getter/Setter 与遍历,再进入“类”的混入机制、[[Prototype]] 原型链、原型继承与行为委托,并附 ES6 class 附录。作者写作的出发点,是反对前端开发者“不求甚解”的倾向:很多 JavaScript 特性因为容易被误用而被开发者列入黑名单,久而久之,这门语言被开发者的使用方式裁剪得残缺而危险。本书不教框架与语法 API,而是带读者回到语言内部的机制,弄清楚每一个“零部件”为什么这样设计。全书篇幅不大但密度很高,例子短小、层层递进,配合大量“小测验”和总结,适合读完一遍再回头精读。本册为该系列上卷,中卷与下卷分别讨论类型与语法、异步与性能。
编辑推荐
如果你写 JavaScript 的年头已经不算短,却仍然会在看到某个 this 的指向、某个闭包里的变量、某段诡异的提升行为时心里一沉,那么这本书正是为你准备的。它不铺陈语法手册,也不追赶框架热点,而是用两百页左右的篇幅,把“作用域—闭包—this—对象—原型”这条主干从底层重新讲一遍:作用域在编译阶段就被确定,闭包是作用域链的自然结果,this 由调用位置而非书写位置决定,原型链才是 JavaScript 真正的继承机制。作者的叙述节奏很好,几乎每个抽象概念都会配一个短小例子,先用反直觉的输出制造疑问,再一层层拆开引擎的行为,最后用小测验让你自己动手验证。很多人读完的感受是:原来过去十几年是“猜”着用这门语言的。图灵程序设计丛书的这个中文版由赵望野、梁杰翻译,术语处理克制、行文通顺,正文与附录的取舍也贴合国内读者的学习路径。对于希望摆脱“能跑就行”、真正建立语言底层模型的开发者,这是性价比极高的一本。
适合谁读
适合
- 已能写日常业务代码、希望弄清 this 与闭包究竟如何工作的前端开发者
- 准备前端面试、需要系统梳理作用域与原型链知识体系的人
- 从其他语言转来、想理解 JavaScript 独特对象模型的后端或全栈程序员
- 计算机相关专业学生,作为《JavaScript高级程序设计》之后的进阶读物
不适合
- 完全没有 JavaScript 基础、需要先学语法与 DOM 操作零基础入门者
- 只想找框架、工程化或组件库实战教程的读者
- 期待大量完整项目案例、边做边学的读者
阅读建议
- 先通读一遍建立整体图景,再对 this 绑定规则与闭包两章逐例手敲验证。
- 读每个例子时先遮住输出自己预测结果,再运行对照,差异处就是知识缺口。
- 读完上卷可顺次衔接中卷(类型与语法)与下卷(异步与性能),形成完整认知。
- 配合浏览器控制台或 Node 环境练习,遇到结论存疑时以实际运行结果为准。
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 前言
- 第一部分 作用域与闭包
- 第1章 作用域是什么(编译原理、理解作用域、作用域嵌套、异常)
- 第2章 词法作用域(词法阶段、欺骗词法:eval 与 with)
- 第3章 函数作用域与块作用域(隐藏内部实现、匿名与具名、IIFE、with、try/catch、let、const)
- 第4章 提升(编译器再度来袭、函数优先)
- 第5章 作用域闭包(实质问题、循环与闭包、模块、现代与未来的模块机制)
- 附录A 动态作用域
- 附录B 块作用域的替代方案
- 附录C this 词法
- 附录D 致谢
- 第二部分 this 与对象原型
- 第1章 关于this(为什么要用this、常见误解、this 到底是什么)
- 第2章 this 全面解析(调用位置、默认绑定、隐式绑定、显式绑定、new 绑定、优先级、绑定例外、软绑定、this 词法)
- 第3章 对象(语法、类型、内容、可计算属性名、属性描述符、不变性、[[Get]] 与 [[Put]]、Getter 与 Setter、存在性、遍历)
- 第4章 混合对象“类”(类理论、类的机制、类的继承、多态、多重继承、显式混入与隐式混入)
- 第5章 原型([[Prototype]]、原型继承、对象关联)
- 第6章 行为委托(面向委托的设计、类与对象、更简洁的设计、内省)
- 附录A ES6 中的 class
常见问题
这本书适合零基础学 JavaScript 吗?
不太适合。本书假定读者已有基本的 JavaScript 使用经验,重点讲语言内部机制而非语法入门。零基础读者建议先读《JavaScript高级程序设计》一类入门书,再回来读本书收获更大。
上卷、中卷、下卷分别讲什么?
上卷讲作用域与闭包、this 与对象原型;中卷对应类型与语法;下卷对应异步与性能。三册主题相对独立,可按兴趣选读,但按上、中、下顺序读最顺。
中文版和英文原版内容一致吗?
上卷中文版合并了原书 Scope & Closures 与 This & Object Prototypes 两部分,主体章节与附录基本对应原书结构,个别版式与附录编排有调整,核心内容一致。
书里的示例过时了吗,还值得读吗?
书中讨论的是作用域、闭包、this、原型等语言核心机制,这些机制多年来变化很小,因此主体内容并不过时;涉及模块与 ES6 语法的部分可结合当前规范补充阅读。
读完能显著提升面试表现吗?
对作用域、闭包、this 指向、原型链、继承等高频考点帮助直接而明显,但本书不做面试题汇编,需要自己把书中结论转化为可表述的答案并配合练习。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。