Nicholas C. Zakas是一名前端开发顾问、作者和演讲家。在Yahoo!供职超过5年时间,在这期间他曾是Yahoo!首页首席前端工程师和YUI库代码贡献者。他著有《JavaScript高级程序设计》、《Ajax高级程序设计》和《高性能JavaScript》等书籍。Zakas倡导了很多最佳实践,包括渐进增强、可访问性、性能、扩展性和可维护性等。他的博客地址是:http://www.nczonline.net/。他的Twitter是:@slicknet。
李晶,花名拔赤,淘宝前端工程师,具有多年前端开发经验,在团队协作、组件开发、移动Web App等方面有深入研究,曾经参与淘宝首页、KISSY等项目开发。他翻译过《JavaScript Web富应用开发》、《JavaScript权威指南(第六版)》、《What is Node?》等书籍,热爱分享,喜欢折腾。微博http://weibo.com/jayli。
郭凯,花名流火,淘宝前端工程师,喜欢登山,也喜欢夜深人静时一人静静地写代码,折腾过许多小站均未能持久,有In、Juicer等开源项目。钟爱JavaScript,也喜欢Python,自嘲所学杂而不精。博客http://benben.cc。
张散集,花名一舟,淘宝前端工程师。他主要从事技术管理,负责淘宝网(北京)的新业务技术和前端团队,热爱前端新技术的推广与应用。翻译作品有《JavaScript Web富应用开发》和《JavaScript权威指南(第六版)》。
目录
第一部分 编程风格 1
第1章 基本的格式化 4
1.1 缩进层级 4
1.2 语句结尾 7
1.3 行的长度 8
1.4 换行 9
1.5 空行 10
1.6 命名 11
1.6.1 变量和函数 12
1.6.2 常量 13
1.6.3 构造函数 14
1.7 直接量 15
1.7.1 字符串 15
1.7.2 数字 16
1.7.3 null 17
1.7.4 undefined 18
1.7.5 对象直接量 19
1.7.6 数组直接量 20
第2章 注释 21
2.1 单行注释 21
2.2 多行注释 23
2.3 使用注释 24
2.3.1 难于理解的代码 25
2.3.2 可能被误认为错误的代码 26
2.3.3 浏览器特性hack 26
2.4 文档注释 27
第3章 语句和表达式 30
3.1 花括号的对齐方式 31
3.2 块语句间隔 32
3.3 switch语句 33
3.3.1 缩进 33
3.3.2 case语句的“连续执行” 35
3.3.3 default 36
3.4 with语句 37
3.5 for循环 37
3.6 for-in循环 39
第4章 变量、函数和运算符 41
4.1 变量声明 41
4.2 函数声明 44
4.3 函数调用间隔 45
4.4 立即调用的函数 46
4.5 严格模式 47
4.6 相等 49
4.6.1 eval() 51
4.6.2 原始包装类型 52
第二部分 编程实践 54
第5章 UI层的松耦合 55
5.1 什么是松耦合 56
5.2 将JavaScript从CSS中抽离 57
5.3 将CSS从JavaScript中抽离 58
5.4 将JavaScript从HTML中抽离 60
5.5 将HTML从JavaScript中抽离 62
5.5.1 方法1:从服务器加载 63
5.5.2 方法2:简单客户端模板 64
5.5.3 方法3:复杂客户端模板 67
第6章 避免使用全局变量 70
6.1 全局变量带来的问题 70
6.1.1 命名冲突 71
6.1.2 代码的脆弱性 71
6.1.3 难以测试 72
6.2 意外的全局变量 72
避免意外的全局变量 73
6.3 单全局变量方式 74
6.3.1 命名空间 76
6.3.2 模块 78
6.4 零全局变量 81
第7章 事件处理 83
7.1 典型用法 83
7.2 规则1:隔离应用逻辑 84
7.3 规则2:不要分发事件对象 85
第8章 避免“空比较” 88
8.1 检测原始值 88
8.2 检测引用值 90
8.2.1 检测函数 92
8.2.2 检测数组 94
8.3 检测属性 95
第9章 将配置数据从代码中分离出来 98
9.1 什么是配置数据 98
9.2 抽离配置数据 99
9.3 保存配置数据 100
第10章 抛出自定义错误 103
10.1 错误的本质 103
10.2 在JavaScript中抛出错误 104
10.3 抛出错误的好处 105
10.4 何时抛出错误 106
10.5 try-catch语句 107
10.6 错误类型 109
第11章 不是你的对象不要动 112
11.1 什么是你的 112
11.2 原则 113
11.2.1 不覆盖方法 113
11.2.2 不新增方法 114
11.2.3 不删除方法 116
11.3 更好的途径 117
11.3.1 基于对象的继承 118
11.3.2 基于类型的继承 119
11.3.3 门面模式 120
11.4 关于Polyfill的注解 121
11.5 阻止修改 122
第12章 浏览器嗅探 125
12.1 User-Agent检测 125
12.2 特性检测 127
12.3 避免特性推断 129
12.4 避免浏览器推断 130
12.5 应当如何取舍 134
第三部分 自动化 135
第13章 文件和目录结构 137
13.1 最佳实践 137
13.2 基本结构 138
第14章 Ant 143
14.1 安装 143
14.2 配置文件 143
14.3 执行构建 145
14.4 目标操作的依赖 145
14.5 属性 146
14.6 Buildr项目 148
第15章 校验 149
15.1 查找文件 149
15.2 任务 150
15.3 增强的目标操作 152
15.4 其他方面的改进 153
15.5 Buildr任务 154
第16章 文件合并和加工 156
16.1 任务 156
16.2 行尾结束符 157
16.3 文件头和文件尾 158
16.4 加工文件 159
第17章 文件精简和压缩 163
17.1 文件精简 163
17.1.1 使用YUI Compressor精简代码 165
17.1.2 用Closure Compiler精简 167
17.1.3 使用UglifyJS精简 169
17.2 压缩 170
17.2.1 运行时压缩 171
17.2.2 构建时压缩 171
第18章 文档化 175
18.1 JSDoc Toolkit 175
18.2 YUI Doc 177
第19章 自动化测试 180
19.1 YUI Test Selenium引擎 180
19.1.1 配置一台Selenium服务器 181
19.1.2 配置YUI Test Selenium引擎 181
19.1.3 使用YUI Test Selenium引擎 181
19.1.4 Ant的配置写法 183
19.2 Yeti 184
19.3 PhantomJS 186
19.3.1 安装及使用 186
19.3.2 Ant的配置写法 187
19.4 JsTestDriver 188
19.4.1 安装及使用 188
19.4.2 Ant的配置写法 189
第20章 组装到一起 191
20.1 被忽略的细节 191
20.2 编制打包计划 192
20.2.1 开发版本的构建 193
20.2.2 集成版本的构建 194
20.2.3 发布版本的构建 195
20.3 使用CI系统 196
20.3.1 Jenkins 196
20.3.2 其他CI系统 199
附录A JavaScript编码风格指南 200
附录B JavaScript工具集 223
《信息产业部3G移动通信培训指定教材•3G移动通信系统概述》是为了帮助读者了解和掌握第三代移动通信系统三大主流技术的相关基础知
《华为双向指挥系统》内容简介:本书是一部研究华为管理方法的著作,通过一个简单的双向指挥原理,推演出华为管理体系的各种特征,
深度学习中的图像分类与对抗技术 本书特色 本书以深度学习中的图像分类和对抗技术为切入点,通过介绍深度学习的基本知识、神经网络模型、图像分类对抗环境和对抗样本评价...
本书是一部讲述现代web标准的优秀教程,彻底摒弃了过时的内容,始终贯彻三层分离的思想。书中结合实例讲述如何使用html、css设计
二00二年,一項名為「PD的思想」的設計展於東京Ozone展出,本書即為同名展覽型錄的擴充版,蒐錄了從1958年保羅‧漢寧生的「PH燈」
《深入解析MacOSX&iOS操作系统》编著者莱文。系统开发者、内核黑客和对苹果感到好奇的人们注意了!本书探讨了MacOSX系统和iOS系统
OnceyouvecometogripswiththecorePythonlanguage,learninghowtobuildPythonapplicatio...
随着网站越来越大,问题开始出现:速度变慢、链接失败、安全性变差、兼容性降低……怎么办?从头开始重建网站总不是明智之举,这
《唐诗三百首》内容简介:唐代是我国古代文学发展的重要阶段,尤其是古代诗歌发展的全盛时期,同时也是一个诗人辈出的时代,因此后
《四旋翼飞行器设计与实现》内容简介:本书从四旋翼飞行器的历史和现状切入,通过阐述无人机的飞行原理、系统构成、通信协议等,向
《设计调查》是国内第一本关于设计调查的专业著作。《设计调查》作者经过七年研究和教学试用,建立了设计调查的系统方法。主要涉
《Python一行流:像专家一样写代码》内容简介:本书专注于从初学迈向进阶的Python编码技术:如何像专家一样写出优雅、准确、简洁高
《蔡澜旅行食记(1)》内容简介:本书收录了蔡澜先生以寻味为目的的旅行游记和杂感随笔。看世界,从莫斯科到布宜诺斯艾利斯,阅尽欧
VisualFoxPro课程设计案例精编 本书特色 以案例带动知识点,诠释实际项目的设计理念,使读者可举一反三。案例典型、切合实际应用,使读者身临其境,有助于快...
《世界想象:西学东渐与明清汉文地理文献》内容简介:16至19世纪的西学东渐,使中国社会进入一个独特的文化转型期。此间所形成的汉
《儿童发育迟缓居家康复指导》内容简介:本书从什么是发育迟缓、怎么知道得了发育迟缓、发育迟缓有哪些表现和危害、如何进行居家康
《人人可懂的深度学习》内容简介:采用通俗易懂的语言,简明而全面地介绍对人工智能革命起到核心作用的深度学习技术。作者:【爱尔
本书集中讨论CGI编程,以便利用目录 目录译者序前言第一部分CGI的基本知识第1章CGI介绍1.1什么是共同网关接口1.2Web上...更多>>
《学术论文写作与发表指南》内容简介:本书内容涵盖论文选题、论文写作、投稿技巧、期刊审稿等,适用于人文社会科学高校教师、硕博
《中国哲学十讲》内容简介:《中国哲学十讲》是我国近代著名哲学家李石岑先生的代表作之一,也是在“中西比较”框架下进行中国哲学