编写高质量代码:改善 JavaScript 程序的 188 个建议 PDF 文档

发布于 2023-03-13 12:56:36 字数 4923 浏览 128 评论 0

Web 前端工程师进阶修炼的必读之作,将为你通往 JavaScript 技术殿堂 指点迷津。

内容全部由编写高质量的 JavaScript 代码的最佳实践组成,从基本语法、应用架构、工具框架、编码风格、编程思想等5大方面对Web前端工程师遇到的疑难问题给出了经验性的解决方案,为Web前端工程师如何编写更高质量的JavaScript代码提供了188条极为宝贵的建议。

对于每一个问题,不仅以建议的方式给出了被实践证明为十分优秀的解决方案,而且还给出了经常被误用或被错误理解的不好的解决方案,从正反两个方面进行了分析和对比,犹如醍醐灌顶,让人豁然开朗。编写高质量代码:改善 JavaScript 程序的 188 个建议 针对每个问题所设计的应用场景都非常典型,给出的建议也都与实践紧密结合。

每一条建议都可能在你的下一行代码、下一个应用或下一个项目中被用到,建议你将 编写高质量代码:改善 JavaScript 程序的 188 个建议 放置在手边,随时查阅,一定能使你的学习和开发工作事半功倍。

封面
书名
版权
前言
目录
第一章 Javascript语言基础
1 警惕Unicode乱码
2 正确辨析Javascript句法中的词、句和段
3 减少全局变量污染
4 注意Javascript数据类型的特殊性
5 防止Javascript自动插入分号
6 正确处理Javascript特殊值
7 小心保留字的误用
8 谨慎使用运算符
9 不要信任hasOwnProperty
10 谨记对象非空特性
11 慎重使用伪数组
12 避免使用with
13 养成优化表达式的思维方式
14 不要滥用eval
15 避免使用continue
16 防止switch贯穿
17 块标志并非多余
18 比较function语句和function表达式
19 不要使用类型构造器
20 不要使用new
21 推荐提高循环性能的策略
22 少用函数迭代
23 推荐提高条件性能的策略
24 优化if逻辑
25 恰当选用if和switch
26 小心if嵌套的思维陷阱
27 小心if隐藏的BUG
28 使用查表法提高条件检测的性能
29 准确使用循环体
30 使用递归模式
31 使用迭代
32 使用制表
33 优化循环结构
第二章 字符串、正则表达式和数组
34 字符串是非值操作
35 获取字节长度
36 警惕字符串连接操作
37 推荐使用replace
38 正确认识正则表达式工作机制
39 正确理解正则表达式回溯
40 正确使用正则表达式分组
41 正确使用正则表达式引用
42 用好正则表达式静态值
43 使用exec增强正则表达式功能
44 正确使用原子组
45 警惕嵌套量词和回溯失控
46 提高正则表达式执行效率
47 避免使用正则表达式的场景
48 慎用正则表达式修剪字符串
49 比较数组与对象同源特性
50 正确检测数组类型
51 理解数组长度的有限性和无限性
52 建议使用splice删除数组
53 小心使用数组维度
54 增强数组排序的sort功能
55 不要拘泥于数字下标
56 使用arguments模拟重载
第三章 函数式编程
57 禁用Function构造函数
58 灵活使用arguments
59 推荐动态调用函数
60 比较函数调用模式
61 使用闭包跨域开发
62 在循环体和异步回调中慎重使用闭包
63 比较函数调用和引用本质
64 建议通过Function扩展类型
65 比较函数的惰性求值与非惰性求值
66 使用函数实现历史记录
67 套用函数
68 推荐使用链式语法
69 使用模块化规避缺陷
70 惰性实例化
71 推荐分支函数
72 惰性载入函数
73 函数绑定有价值
74 使用高阶函数
75 函数柯里化
76 要重视函数节流
77 推荐作用域安全的构造函数
78 正确理解执行上下文和作用域链
第四章 面向对象编程
79 参照object构造体系分析prototype机制
80 合理使用原型
81 原型域链不是作用域链
82 不要直接检索对象属性值
83 使用原型委托
84 防止原型反射
85 谨慎处理对象的scope
86 使用面向对象模拟继承
87 分辨this和function调用关系
88 this是动态指针,不是静态引用
89 正确应用this
90 预防this误用的策略
91 推荐使用构造函数原型模式定义类
92 不建议使用原型继承
93 推荐使用类继承
94 建议使用封装类继承
95 慎重使用实例继承
96 避免使用复制继承
97 推荐使用混合继承
98 比较使用Javascript多态、重载和覆盖
99 建议主动封装类
100 谨慎使用类的静态成员
101 比较类的构造和析构特性
102 使用享元类
103 使用掺元类
104 谨慎使用伪类
105 比较单例的两种模式
第五章 DOM编程
106 建议先检测浏览器对DOM支持程度
107 应理清HTML DOM加载流程
108 谨慎访问DOM
109 比较innerHTML与标准DOM方法
110 警惕文档遍历中的空格BUG
111 克隆节点比创建节点更好
112 谨慎使用HTML集合
113 用局部变量访问集合元素
114 使用nextSibling抓取DOM
115 实现DOM原型继承机制
116 推荐使用css选择器
117 减少DOM重绘和重排版次数
118 使用DOM树结构托管事件
119 使用定时器优化UI队列
120 使用定时器分解任务
121 使用定时器限时运行代码
122 推荐网页工人线程
第六章 客户端编程
123 比较IE和W3C事件流
124 设计鼠标拖放方案
125 设计鼠标指针定位方案
126 小心在元素内定位鼠标指针
127 妥善使用DOMContentLoaded事件
128 推荐使用beforeunload事件
129 自定义事件
130 从CSS样式表中抽取元素尺寸
131 慎重使用offsetWidth和offsetHeight
132 正确计算区域大小
133 谨慎计算滚动区域大小
134 避免计算窗口大小
135 正确获取绝对位置
136 正确获取相对位置
第七章 数据交互和存储
137 使用隐藏框架实现异步通信
138 使用iframe实现异步通信
139 使用script实现异步通信
140 正确理解jsonp异步通信协议
141 比较常用的服务器请求方法
142 比较常用的服务器发送数据方法
143 避免使用XML格式进行通信
144 推荐使用json格式进行通信
145 慎重使用HTML格式进行通信
146 使用自定义格式进行通信
147 ajax性能向导
148 使用本地存储数据
149 警惕基于DOM的跨域侵入
150 优化ajax开发的最佳实践
151 数据存储要考虑访问速度
152 使用局部变量存储数据
153 警惕人为改变作用域链
154 慎重使用动态作用域
155 小心闭包导致内存泄漏
156 灵活使用cookie存储长信息
157 推荐封装cookie应用接口
第八章 Javascript引擎与兼容性
158 比较主流浏览器内核解析
159 推荐根据浏览器特性进行检测
160 关注各种引擎对ECMAScript v3的分歧
161 关注各种引擎对ECMAScript V3的补充
162 关注各种引擎对Event解析的分歧
163 关注各种引擎对DOM解析的分歧
164 关注各种引擎对CSS渲染的分歧
第九章 Javascript编程规范和应用
165 不要混淆Javascript与浏览器
166 掌握Javascript预编译过程
167 准确分析Javascript执行顺序
168 避免二次评估
169 建议使用直接量
170 不要让Javascript引擎重复工作
171 使用位操作符执行逻辑运算
172 推荐使用原生方法
173 编写无堵塞Javascript脚本
174 使脚本延迟执行
175 使用XHR脚本注入
176 推荐最优化非堵塞模式
177 避免深陷作用域访问
178 推荐的Javascript性能调优
179 减少DOM操作中的Repaint和Reflow
180 提高DOM访问效率
181 使用setTimeout实现工作线程
182 使用web worker
183 避免内存泄漏
184 使用SVG创建动态图形
185 减少对象成员访问
186 推荐100ms用户体验
187 使用接口解决Javascript文件冲突
188 避免Javascript与css冲突

下载地址:https://www.wenjiangs.com/wp-content/uploads/staticcdn/pdf/486b8ba0-565bd389.zip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

一梦浮鱼

文章 0 评论 0

mb_Z9jVigFL

文章 0 评论 0

伴随着你

文章 0 评论 0

耳钉梦

文章 0 评论 0

18618447101

文章 0 评论 0

蜗牛

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文