具体描述
2006年,本书第1版问世,立刻脱颖而出,成为广大Web程序员心目中的经典,是提升JavaScript编程技能的必读书籍。身为jQuery之父,John Resig将丰富的经验和学识融入本书,以平和的语言和详实的代码示例为读者提供了JavaScript学习的绝佳参考。
时隔多年,Web编程技术已然有了长足的进步。John Resig联手另外两位优秀工程师Russ Ferguson和John Paxton,推出本书第2版。新版继承第1版的实用风格,同时全面更新内容。在讲解技术之余,第2版还探讨了JavaScript的发展历程,带领读者展望了这门技术的未来趋势。
作者简介
作者简介:
John Resig
jQuery之父,世界级Web开发大师。2007年加入Mozilla公司,现为可汗学院开发人员。
Russ Ferguson
资深开发人员,曾为多家知名企业开发应用,并任教于普罗斯特艺术学院和帕森设计学院。
John Paxton
资深开发人员,通晓多种开发语言,现专心研究Java和JavaScript
译者简介:
门佳
一名技术控,喜欢溯本求源,挖掘技术背后的细节。对于编译技术、Linux系统编程、Perl、网络协议分析、Web前后端开发等均有涉猎,翻译过《Linux Shell脚本攻略》、《TCP Sockets编程》、《Linux命令行与shell脚本编程大全(第3版)》等书籍。闲暇经常混迹于豆瓣和知乎,他喜欢说的一句话就是“无聊才读书”。
李伟
西安电子科技大学通信专业硕士,理工出身,醉心史著;擅长研究,不拘于术。曾任职于国内某著名电信设备制造商,有十余年VxWorks及Linux操作系统编程经历,近年来将注意力转向Web开发领域。一路激情溢怀,感恩充内,恰是俗人不甘俗。
目录信息
1.1 JavaScript的历程 1
1.2 现代JavaScript 3
1.2.1 库的崛起 4
1.2.2 移动,可不只说说而已 5
1.2.3 何去何从 5
1.3 后续内容 6
1.4 小结 7
第2章 特性、函数和对象 8
2.1 语言特性 8
2.1.1 引用和值 8
2.1.2 作用域 10
2.1.3 上下文 12
2.1.4 闭包 13
2.1.5 函数重载与类型检查 16
2.2 新的对象工具 19
2.2.1 对象 19
2.2.2 修改对象 19
2.3 小结 22
第3章 创建可重用代码 23
3.1 面向对象的JavaScript 23
3.1.1 继承 27
3.1.2 成员可见性 31
3.1.3 面向对象JavaScript的未来 33
3.2 打包JavaScript 33
3.2.1 命名空间 33
3.2.2 模块模式 34
3.2.3 立即调用的函数表达式 36
3.3 小结 38
第4章 JavaScript代码调试 39
4.1 调试工具 39
4.1.1 控制台 40
4.1.2 利用控制台的特性 42
4.2 调试器 43
4.2.1 DOM探查器 44
4.2.2 网络分析器 44
4.2.3 时间线 45
4.2.4 侧写器 45
4.3 小结 47
第5章 文档对象模型 48
5.1 文档对象模型简介 48
5.1.1 DOM结构 50
5.1.2 DOM中的相互关系 51
5.2 访问DOM元素 53
5.3 等待HTML DOM载入 56
5.3.1 等待页面载入 56
5.3.2 等待正确的事件 56
5.4 获取元素内容 57
5.4.1 获取元素的文本内容 57
5.4.2 获取元素的HTML 59
5.5 使用元素特性 59
5.6 修改DOM 63
5.6.1 使用DOM创建节点 63
5.6.2 插入DOM 63
5.6.3 向DOM中插入HTML 64
5.6.4 从DOM中删除节点 66
5.6.5 处理DOM中的空白字符 67
5.6.6 简单的DOM导航 68
5.7 小结 70
第6章 事件 71
6.1 JavaScript事件简介 71
6.1.1 栈、队列和事件循环 71
6.1.2 事件阶段 72
6.2 绑定事件侦听器 73
6.2.1 传统式绑定 74
6.2.2 DOM绑定:W3C 77
6.2.3 解除事件绑定 78
6.3 常见的事件特性 79
6.3.1 事件对象 79
6.3.2 取消事件冒泡 80
6.3.3 屏蔽浏览器的默认行为 81
6.3.4 事件委托 82
6.4 事件对象 83
6.4.1 普通属性 83
6.4.2 鼠标属性 84
6.4.3 键盘属性 86
6.5 事件类型 86
6.5.1 页面事件 87
6.5.2 UI事件 88
6.5.3 鼠标事件 88
6.5.4 键盘事件 89
6.5.5 表单事件 90
6.5.6 事件可访问性 90
6.6 小结 91
第7章 JavaScript与表单验证 92
7.1 HTML与CSS表单验证 92
7.2 JavaScript表单验证 95
7.2.1 验证与用户 98
7.2.2 验证事件 99
7.3 定制验证 101
7.4 小结 102
第8章 Ajax入门 103
8.1 使用Ajax 104
8.1.1 HTTP请求 104
8.1.2 HTTP响应 109
8.2 小结 111
第9章 Web生产工具 112
9.1 为项目搭建脚手架 112
9.2 NPM必不可少 113
9.3 生成器 113
9.3.1 版本控制 115
9.3.2 添加文件、更新以及首次
提交 116
9.4 小结 119
第10章 AngularJS与测试 120
10.1 视图与控制器 122
10.2 远程数据源 124
10.3 路由 126
10.4 路由参数 126
10.5 应用程序测试 128
10.5.1 单元测试 128
10.5.2 使用Protractor进行端到端
测试 132
10.6 小结 134
第11章 JavaScript的未来 135
11.1 ECMAScript的过去和未来 135
11.2 使用ECMAScript Harmony 136
11.2.1 Harmony资源 136
11.2.2 使用Harmony 137
11.3 ECMAScript Harmony语言特性 141
11.3.1 箭头函数 142
11.3.2 类 143
11.3.3 Promise 144
11.3.4 模块 146
11.3.5 类型扩展 148
11.3.6 全新的聚合类型 151
11.4 小结 153
附录A DOM参考 154
· · · · · · (收起)
读后感
学习JavaScript不久,很多JavaScript的核心概念都不怎么了解,对JacaScript的认知基本都是从W3C上面学到的,多是一些基本的语法。然后从图书馆借来JavaScript基础来看了下,很多内容都是懂得,于是自以为JavaScript的内容大致都已经了解了,只待应用了。 看了这本...
Pro JavaScript Techniques is the ultimate JavaScript book for the modern web developer. It provides everything you need to know about modern JavaScript, and shows what JavaScript can do for your web sites. This book doesn't waste any time looking at things ...
Pro JavaScript Techniques is the ultimate JavaScript book for the modern web developer. It provides everything you need to know about modern JavaScript, and shows what JavaScript can do for your web sites. This book doesn't waste any time looking at things ...
所谓文笔,并不是前阵子韩寒评论巴金冰心等人的“文笔”,只是说作者在讲解知识,分析问题的时候,不够流畅清晰。 当然,这是相对于《ppk谈javascript》这本书而言的。我是读完ppk的书再买了这一本,因为前者说是初级的,后者是高级的。但是感觉,读完ppk的书,收获更多些...
半年前,当我对JavaScript还停留在只认识这几个字母的时候(again, XD),我在寻找学习JavaScript的学习途经,jQuery无意闯入我的眼帘,我惊叹于它的小巧和易理解性,在我还不懂JavaScript基本语法的时候,我已经能用它做很多对我来说是不可思议的事情。由此也认识了它的作者...
用户评价
作为一名资深后端Node.js开发者,我对这本书中关于服务器端JavaScript的章节期望值并不高,通常这类书籍都会把后端内容写得蜻蜓点水。但事实证明,我这次看走眼了。它对Node.js的Cluster模块在多核CPU环境下的进程管理策略进行了深入的探讨,特别是关于如何优雅地实现进程间的负载均衡和数据共享,而不是简单地启动几个子进程了事。最让我印象深刻的是它关于流(Streams)的章节,它不仅讲解了可读流、可写流、双工流和转换流的基本用法,更深入到底层Buffer的管理和背压(Backpressure)机制的实现细节。书中甚至模拟了一个高并发文件上传场景,展示了如何通过控制流的速度,避免内存溢出。这种对I/O密集型操作的精妙处理,完全可以应用到我们日常处理大量网络请求和数据管道的场景中去,极大地提升了我们服务在面对突发流量时的稳定性,这本书对服务端JS的覆盖深度,已经达到了专业工具书的水准。
我主要关注的是前端框架的性能优化部分,因为我们项目最近遇到了严重的渲染阻塞问题。这本书的第四部分,关于浏览器渲染流程和JavaScript执行上下文切换的章节,简直是为我量身定做的“救星”。它没有流于表面地讲什么`requestAnimationFrame`,而是细致入微地拆解了布局(Layout)、重绘(Repaint)和合成(Compositing)这三个阶段中,JS操作是如何引起不必要的DOM reflow和repaint的。书中提到的一种利用CSS transforms来隔离层级,从而避免全局重绘的技巧,我立刻在测试环境中复现了。效果立竿见影,原本需要200ms的复杂动画,现在稳定在了30ms以内。更让我惊喜的是,它还引入了Web Workers和SharedArrayBuffer来处理CPU密集型任务,帮助主线程彻底解脱出来。这本书的价值在于,它提供的不是API的罗列,而是深入到浏览器工作原理层面的解决方案,让你理解为什么你的代码慢,以及如何从根本上解决它,这比任何优化工具的报告都来得直接和有效。
这本书的第三部分,专门讲解了类型系统和模块化方案的演进历程,内容极其详实,几乎可以算作是一部JavaScript语言标准发展史的缩影。它不只罗列了CommonJS、AMD、UMD的优缺点,更重要的是,它详细分析了为什么ES Modules最终会被采纳为官方标准,以及它在静态分析和Tree Shaking方面的巨大优势。我过去只是机械地使用TypeScript,但这本书深入探讨了TS类型系统如何编译回JS,以及这些类型声明在运行时是如何被抛弃的,这让我对如何更好地利用类型系统来指导代码设计而非仅仅是编译期检查有了更深刻的理解。对于那些还在纠结于使用哪种模块方案的团队来说,这本书提供的历史背景和技术权衡分析,足以让他们做出最明智的决策。它真正做到了“精通”,不仅告诉你代码怎么写,更告诉你为什么要这样写,以及未来可能如何演变。
这本号称“精通”的JavaScript圣经,我拿到手的时候,心里其实是打了个大大的问号的。毕竟市面上关于JS的书籍多如牛毛,能真正做到“精通”的寥寥无几。我带着批判的眼光,首先翻阅了关于ES6+新特性那几章。坦白说,对于一个日常工作中使用React和Node.js的开发者来说,那些基础概念我早已烂熟于心。然而,这本书在讲解`Promise`链式调用和`async/await`的底层运行机制时,那份深入剖析的细致程度,真的让我眼前一亮。它没有停留在“怎么用”的层面,而是像剥洋葱一样,一层层揭示了事件循环(Event Loop)在处理异步流程中的真正逻辑,特别是对微任务队列和宏任务队列的区分,配上清晰的图示,让我这个自诩熟练的开发者都重新审视了自己过去模糊的理解。特别是它对V8引擎内部如何优化垃圾回收机制和闭包的内存管理策略的探讨,虽然略显学术化,但对于追求代码性能极限的人来说,绝对是宝贵的参考资料。它不是一本速成手册,而更像是一本需要耐心研读的“内功心法”,让我开始反思自己过去写代码时那些看似无伤大雅的“坏习惯”,确实是时候从“会写”迈向“写好”了。
我买这本书的初衷其实是想找一本能系统梳理面向对象编程(OOP)在JavaScript中实现方式的资料,因为我总觉得JS的类和继承机制不够“纯粹”。这本书中关于原型链(Prototype Chain)的讲解,可以说是迄今为止我读到过最清晰的版本。它没有回避`__proto__`的争议,而是从ECMAScript规范的角度,严谨地解释了继承是如何通过委托实现的。它甚至用了一个相当巧妙的例子,模拟了经典OOP语言中的多重继承,并通过组合(Composition)而非继承来实现类之间的松耦合设计。对于设计模式的讲解也十分到位,尤其是单例模式和观察者模式在JS闭环生态中的独特变体,这本书提出了很多我们团队内部从未思考过的架构优化点。它成功地将JavaScript的动态特性与严谨的软件工程原则结合起来,让我对如何构建大型、可维护的JS应用有了全新的认识,彻底扫清了早期JS设计模式学习中的概念障碍。
一般般 angular和es6部分感觉就是凑字数的
一般般 angular和es6部分感觉就是凑字数的
【入门】书海拾遗。
一般般 angular和es6部分感觉就是凑字数的
读了两遍,准备读第三遍