JavaScript核心概念及实践
2013-5
人民邮电出版社
邱俊涛
无
《JavaScript核心概念及实践》不仅帮助读者迅速掌握JavaScript基础知识和核心技术,而且通过实例讲解如何将这些知识和技术理解应用到实际工作中,提升编程能力,以简洁、优美的代码开发出功能强大且更易于维护和扩展的应用程序。全书共16章和两个附录,可以分为两个部分。第一部分包括第1章到第7章,侧重介绍JavaScript语言的核心概念,为读者学习后续内容打下牢固基础;这部分介绍了JavaScript的对象、函数、数组、正则表达式、闭包等主题,以及相关的重要知识点。第二部分包括第8章到第16章,着重讨论了JavaScript支持的编程范式、核心概念的延伸、JavaScript的前端开发框架、测试框架、JavaScript引擎、JavaScript在Java,C、C++等应用中的使用,以及服务器端的JavaScript应用。这部分内容更注重实例,帮助读者将核心概念引用到实际工作中。附录A介绍了一些常用JavaScript技巧;附录B简单介绍了jQuery并给出了一个应用实例。
邱俊涛,ThoughtWorks软件工程师。喜欢编程,尤其喜欢编程带来的成就感。对动态语言、函数式编程等有浓厚的兴趣。喜欢开源软件,喜欢知识分享,并从他人的分享中学习。崇尚简单、轻量的设计和模式。个人主页:http://icodeit.org。微博:@正反反长。
第1章 概述 1 1.1 JavaScript简史 1 1.1.1 动态网页 1 1.1.2 浏览器之战 2 1.2 JavaScript语言特性 3 1.2.1 动态性 3 1.2.2 弱类型 5 1.2.3 面向对象 6 1.2.4 解释与编译 7 1.3 JavaScript应用范围 7 1.3.1 客户端JavaScript 7 1.3.2 服务器端JavaScript 10 1.3.3 其他应用中的JavaScript 12 第2章 基本概念 16 2.1 数据类型 16 2.1.1 数据类型 16 2.1.2 对象类型 17 2.1.3 基本类型与对象间的转换 18 2.1.4 类型的判断 20 2.2 变量 21 2.2.1 基本类型和引用类型 21 2.2.2 变量的作用域 22 2.3 运算符 23 2.3.1 中括号运算符([]) 23 2.3.2 点运算符(.) 24 2.3.3 相等与等同运算符 25 第3章 对象 28 3.1 JavaScript对象 28 3.1.1 对象的属性 29 3.1.2 属性与变量 29 3.1.3 原型对象及原型链 30 3.1.4 this指针 32 3.2 使用对象 33 3.3 对象字面量 34 3.4 JSON 36 第4章 函数 38 4.1 函数对象 38 4.1.1 创建函数 38 4.1.2 函数的参数 40 4.2 函数作用域 41 4.2.1 词法作用域 41 4.2.2 调用对象 43 4.3 函数上下文 44 4.4 call和apply 44 4.5 使用函数 45 4.5.1 赋值给一个变量 45 4.5.2 赋值为对象的属性 46 4.5.3 作为参数传递 46 4.5.4 作为函数的返回值 47 第5章 数组 48 5.1 数组的特性 48 5.2 使用数组 50 5.2.1 数组的基本方法使用 50 5.2.2 删除数组元素 53 5.2.3 遍历数组 55 第6章 正则表达式 57 6.1 正则表达式基础概念 57 6.1.1 元字符与特殊字符 58 6.1.2 范围及重复 58 6.1.3 分组与引用 61 6.2 使用正则表达式 62 6.2.1 创建正则表达式 62 6.2.2 String中的正则表达式 64 6.3 实例:JSFilter 65 第7章 闭包 67 7.1 闭包的特性 67 7.2 闭包的用途 69 7.2.1 匿名自执行函数 69 7.2.2 缓存 70 7.2.3 实现封装 71 7.3 应该注意的问题 72 7.3.1 内存泄漏 72 7.3.2 上下文的引用 73 第8章 面向对象的JavaScript 75 8.1 原型继承 75 8.1.1 引用 77 8.1.2 new操作符 78 8.2 封装 79 8.3 工具包Base 80 8.4 实例:事件分发器 83 第9章 函数式的JavaScript 92 9.1 匿名函数 93 9.2 高阶函数 93 9.2.1 JavaScript中的高阶函数 94 9.2.2 C语言中的高阶函数 95 9.2.3 Java中的高阶函数 96 9.3 闭包与柯里化 97 9.3.1 柯里化的概念 98 9.3.2 柯里化的应用 98 9.4 一些例子 99 9.4.1 函数式编程风格 99 9.4.2 Y—结合子 101 9.4.3 其他实例 103 第10章 核心概念深入 104 10.1 原型链 104 10.1.1 原型对象与原型链 104 10.1.2 构造器 107 10.2 执行期上下文 108 10.3 活动对象 111 10.4 作用域链 111 10.5 this值 113 10.5.1 词法作用域 113 10.5.2 this的上下文 114 第11章 客户端的JavaScript 116 11.1 客户端JavaScript执行环境 116 11.2 文档对象模型(DOM) 117 11.3 事件驱动模型 118 11.4 与服务器端交互(Ajax) 119 11.5 调试 122 11.5.1 FireFox 122 11.5.2 Chrome 124 11.6 客户端的MVC 126 11.7 JavaScript/Ajax框架 128 第12章 客户端的MVC框架:Backbone.js 130 12.1 Backbone背景简介 130 12.1.1 Backbone模型 131 12.1.2 Backbone集合 132 12.1.3 Backbone视图 133 12.1.4 Backbone路由 134 12.2 Backbone实例1:使用客户端本地存储 135 12.2.1 客户端存储 135 12.2.2 运行结果 136 12.2.3 数据模型 137 12.2.4 视图及模板 137 12.3 Backbone实例2:与服务器端交互 141 12.3.1 后台服务 141 12.3.2 客户端代码修改 142 第13章 JavaScript测试 144 13.1 单元测试框架QUnit 144 13.1.1 QUnit简介 144 13.1.2 QUnit示例 144 13.2 Jasmine 150 13.2.1 Jasmine基本概念 151 13.2.2 Jasmine的spy 155 13.2.3 Jasmine实例 159 13.2.4 测试复杂的场景 162 第14章 JavaScript引擎 165 14.1 使用SpiderMonkey 165 14.1.1 SpiderMonkey简介 165 14.1.2 JavaScript对象与C对象间的转换关系 166 14.1.3 基本代码模板 167 14.1.4 执行JavaScript代码 170 14.1.5 C程序调用JavaScript函数 172 14.1.6 JavaScript程序调用C函数 173 14.1.7 在C程序中定义JavaScript对象 175 14.2 SpiderMonkey的实现简介 177 14.2.1 虚拟机概述 177 14.2.2 SpiderMonkey体系结构 177 14.2.3 jsval类型 178 14.2.4 对象 179 14.3 V8引擎概览 179 14.3.1 V8引擎基本概念 179 14.3.2 V8引擎使用示例 181 14.3.3 使用C++变量 181 14.3.4 调用C++函数 183 14.3.5 使用C++类 184 第15章 Java应用中的JavaScript 188 15.1 脚本化基础 188 15.2 使用Rhino引擎 189 15.2.1 直接对脚本求值 189 15.2.2 传递Java对象 190 15.2.3 调用脚本内的函数 191 15.2.4 在脚本中使用Java资源 193 15.2.5 实现Java接口 194 15.3 实例:sTodo 195 15.3.1 sTodo简介 195 15.3.2 sTodo的插件机制 197 15.3.3 sTodo中的脚本 199 15.4 实例:可编程计算器phoc 201 15.4.1 phoc简介 201 15.4.2 phoc中的脚本 203 第16章 服务器端的JavaScript 207 16.1 node.js 207 16.1.1 node.js简介 207 16.1.2 node.js使用示例 208 16.1.3 node.js实例 211 16.1.4 使用Jasmine测试 215 16.2 CouchDB 217 16.2.1 CouchDB简介 217 16.2.2 CouchDB使用 218 16.2.3 CouchDB实例 220 16.3 MongoDB 227 16.3.1 基本操作 227 16.3.2 map/reduce 230 附录A 一些JavaScript技巧 232 A.1 创建对象 232 A.2 访问对象的属性 232 A.3 遍历对象 233 A.4 名称空间 234 附录B 前端JavaScript框架:jQuery 236 B.1 jQuery简介 236 B.2 jQuery基础 239 B.2.1 jQuery选择器 239 B.2.2 对DOM的操作 241 B.2.3 对CSS的操作 242 B.2.4 事件处理 244 B.2.5 实用函数 246 B.3 jQuery实例 247
版权页: 插图:
讲述JavaScript的图书在市面上可谓汗牛充栋,而且很多都是广为传颂的大牛书。但俊涛的这本书仍然让我眼前一亮,除了出自原创的原因,更重要的是,这本书中没有过多沉湎于JavaScript的语法细节,而是更多地从代码和实战的角度去讲解JavaScript中相对复杂的概念,比如闭包、原型链、this等,让读者可以借此对晦涩的概念有清晰的认识。本书所涉及的自动化测试、函数式编程、客户端和服务器端JavaScript、渲染引擎方面的内容,是其他JavaScript书籍鲜有覆盖的方面,我认为也是这本书最大价值所在。这就像是为广大开发者打开了一扇窗,让读者自拔于琐细的语法和标准的纠结,从更大的视角看待JavaScript在整个软件系统开发中的价值和定位。 ——张凯峰,ThoughtWorks程序员本书着重于重点概念和实际应用,对比多种语言,分析JavaScript的语法特点;紧密贴近编程实践,大量的示例来自真实的项目;从方法论的角度,探讨JavaScript编程思想;涉及函数式编程、继承机制的内部实现、客户端MVC、代码测试、与Java交互、编译引擎、node.js+NoSQL开发等深具实战价值的高级主题,是一本难得的、完全原创的专著。——阮一峰,知名博主,《黑客与画家》译者这本书直入主题地讲解了JavaScript的关键的核心知识点,这些是实战中最为常用的知识点,书中所配备的实例也清晰易懂,本书非常适合入门阅读。—— 李晶 花名拔赤,淘宝前端工程师,《JavaScript权威指南(第6版)》和《编写可维护的JavaScript》译者非常好的一本进阶书籍,丰富的例子让你充分了解JavaScript,初中级读者想要成为真正的前端开发工程师,本书将为你铺垫一条明畅之路。——徐涛,网名“汤姆大叔”,知名JavaScript专家,《JavaScript编程精解》译者
JavaScript是Web应用开发的主流语言,并且业已成为事实上的行业标准。本书侧重介绍JavaScript核心技术和当前热门的库和开发框架。JavaScript核心概念及实践作者来自知名IT公司ThoughtWorks。作者最早在网络上历时三年发布和写作了“JavaScript内核”系列系列技术文章,累计访问和下载过万,颇受好评。JavaScript核心概念及实践得到阮一峰、拔赤、汤姆大叔、张凯峰等知名JavaScript技术专家、作译者和程序员推荐。
讲述JavaScript的图书在市面上可谓汗牛充栋,而且很多都是广为传颂的大牛书。但俊涛的这本书仍然让我眼前一亮,除了出自原创的原因,更重要的是,这本书中没有过多沉湎于JavaScript的语法细节,而是更多地从代码和实战的角度去讲解JavaScript中相对复杂的概念,比如闭包、原型链、this等,让读者可以借此对晦涩的概念有清晰的认识。 本书所涉及的自动化测试、函数式编程、客户端和服务器端JavaScript、渲染引擎方面的内容,是其他JavaScript书籍鲜有覆盖的方面,我认为也是这本书最大价值所在。这就像是为广大开发者打开了一扇窗,让读者自拔于琐细的语法和标准的纠结,从更大的视角看待JavaScript在整个软件系统开发中的价值和定位。 ——张凯峰,ThoughtWorks程序员
无
比较实用,书本内容不多,但涵盖广泛,所以很多js的知识没有面面俱到,但已经很不错了,例子很丰富
正在学习中,以前都是实践中学会的js 现在系统的学一下 。可以很快的提高自己。这本书志在必得