| 作者 |
| 侯策 |
| 丛书名 |
| 出版社 |
| 电子工业出版社 |
| ISBN |
| 9787121389344 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书共分8部分,涵盖33个主题,内容涉及JavaScript基础强化、JavaScript语言进阶、不可忽视的HTML和CSS、前端框架、前端工程化、性能优化、编程思维和算法、网络知识等,聚焦前端开发基础知识和进阶技能,关注前端工程化和体系化,结构清晰,循序渐进,深入浅出。在重构基础知识方面,本书将标准规范和实践代码相结合。在培养进阶技能方面,本书深度剖析了技术背后的原理和哲学。书中列举的项目设计案例涵盖了许多经典面试题目,不仅能帮助初级开发者夯实基础,还能为中、高级开发者突破瓶颈提供帮助和启发。 |
| 目录 |
| 第一部分 JavaScript基础强化 01 一网打尽this,对执行上下文说Yes 2 this到底指向谁 2 实战例题分析 3 开放例题分析 12 总结 13 02 “老司机”也会在闭包上翻车 14 基本知识 14 例题分析 32 总结 35 03 我们不背诵API,只实现API 36 jQuery offset方法实现 36 数组reduce方法的实现 40 实现compose方法的几种方案 45 apply、bind进阶实现 48 总结 52 04 JavaScript高频考点及基础题库 53 JavaScript数据类型及其判断 53 JavaScript数据类型及其转换 57 JavaScript函数参数传递 60 cannot read property of undefined问题解决方案 61 type.js源码解读 63 总结 65 第二部分 JavaScript语言进阶 05 异步不可怕,“死记硬背”+实践拿下 68 异步流程初体验 68 红绿灯任务控制 74 请求图片进行预先加载 76 setTimeout相关考查 79 宏任务和微任务 82 总结 85 06 你以为我真的想让你手写Promise吗 86 从“Promise化”一个API谈起 86 Promise初见雏形 88 Promise实现状态完善 91 Promise异步实现完善 93 Promise细节完善 97 Promise then的链式调用 100 链式调用的初步实现 101 链式调用的完善实现 106 Promise穿透实现 115 Promise静态方法和其他方法实现 116 总结 120 07 面向对象和原型——永不过时的话题 121 实现new没有那么容易 121 如何优雅地实现继承 123 jQuery中的对象思想 130 类继承和原型继承的区别 133 面向对象在实战场景中的应用 134 总结 136 08 究竟该如何学习与时俱进的ES 137 添加新特性的必要性 137 学习新特性的正确“姿势” 139 新特性可以做些什么有趣的事 141 Babel编译对代码做了什么 145 总结 150 第三部分 不可忽视的HTML和CSS 09 前端面试离不开的“面子工程” 152 如何理解HTML语义化 152 BFC背后的布局问题 155 通过多种方式实现居中 162 总结 167 10 进击的HTML和CSS 168 进击的HTML 168 不可忽视的Web components 171 移动端HTML5注意事项总结 171 CSS变量和主题切换优雅实现 174 CSS Modules理论和实战 178 总结 184 11 响应式布局和Bootstrap的实现分析 185 上帝视角——响应式布局适配方案 185 真实线上适配案例分析 187 Bootstrap栅格实现思路 192 横屏适配及其他细节问题 194 面试题:%相对于谁 195 深入:flex布局和传统布局的性能对比 197 总结 200 第四部分 前端框架 12 触类旁通多种框架 202 响应式框架基本原理 202 模板编译原理介绍 211 发布/订阅模式简单应用 214 MVVM融会贯通 215 揭秘虚拟DOM 216 总结 226 13 你真的懂React吗 227 神奇的JSX 227 你真的了解异步的this.setState吗 232 原生事件和React合成事件 234 请不要再背诵diff算法了 236 element diff的那些事儿 237 加上key就一定“性能最优”吗 238 总结 239 14 揭秘React真谛:组件设计 240 单一职责没那么简单 240 组件通信和封装 246 组合性是灵魂 248 副作用和(准)纯组件 250 组件可测试性 254 组件命名是意识和态度问题 257 总结 258 15 揭秘React真谛:数据状态管理 259 数据状态管理之痛 259 Redux到底怎么用 262 Redux的“罪与罚” 268 我们到底需要怎样的数据状态管理 270 总结 272 16 React的现状与未来 273 React现状分析 273 从React Component看React发展史 274 颠覆性的React hook 277 值得关注的其他React特性 282 总结 284 17 同构应用中你所忽略的细节 285 打包环境区分 285 注水和脱水 287 请求认证处理 292 样式问题处理 293 meta tags渲染 295 404处理 296 安全问题 297 性能优化 297 总结 298 18 通过框架和类库,我们该学会什么 299 React和Vue:神仙打架 299 新版本发布的思考 302 从框架再谈基础 304 总结 304 第五部分 前端工程化 19 深入浅出模块化 306 模块化简单概念 306 模块化发展历程 307 ES原生时代 314 未来趋势和思考 316 总结 318 20 webpack工程师和前端工程师 319 webpack到底将代码编译成了什么 319 webpack工作基本原理 327 探秘并编写webpack loader 330 探秘并编写webpack plugin 336 webpack和Rollup 341 综合运用 342 总结 344 21 前端工程化背后的项目组织设计 345 大型前端项目的组织设计 345 使用Lerna实现monorepo 347 分析一个项目迁移案例 350 依赖关系简介 353 复杂依赖关系分析和处理 354 使用yarn workspace管理依赖关系 356 总结 359 22 代码规范工具及技术设计 360 自动化工具巡礼 360 工具背后的技术原理和设计 367 自动化规范与团队建设 376 总结 378 第六部分 性能优化 23 性能监控和错误收集与上报 380 性能监控指标 380 FMP的智能获取算法 383 性能数据获取 384 错误信息收集 390 性能数据和错误信息上报 401 无侵入和性能友好的方案设计 404 总结 405 24 如何解决性能优化问题 406 开放例题实战 406 代码例题实战 410 总结 416 25 以React为例,谈谈框架和性能 417 框架的性能到底指什么 417 React的虚拟DOM diff 418 提升React应用性能的建议 419 React性能设计亮点 426 从Vue 3.0动静结合的Dom diff谈起 427 总结 436 第七部分 编程思维和算法 26 揭秘前端设计模式 438 设计模式到底是什么 438 设计模式原则 439 设计模式的3大类型和23种套路 440 总结 441 27 无处不在的数据结构 442 数据结构和学习方法概览 442 栈和队列 443 链表 446 链表实现 448 树 454 图 461 散列表(哈希表) 467 散列表的实现 472 总结 474 28 古老又新潮的函数式 475 函数式和高质量函数 475 柯里化分析 479 偏函数 485 总结 488 29 那些年常考的前端算法 489 前端和算法 489 算法的基本概念 490 V8 引擎中排序方法的奥秘和演进 491 快速排序和插入排序 491 排序的稳定性 498 Timsort实现 499 实战 500 算法学习 513 总结 518 30 分析一道常见面试题 519 题意分析 519 思路与解答 521 再谈流程控制和中间件 523 总结 534 第八部分 网络知识 31 缓存谁都懂,一问都发蒙 536 缓存概念与分类 536 流程图 538 缓存和浏览器操作 539 缓存相关面试题目 539 缓存实战 540 实现一个验证缓存的轮子 551 总结 554 32 HTTP的深思 555 HTTP的诞生 555 HTTP的现状和痛点 555 HTTP 2.0未来已来 557 从实时通信系统看HTTP发展 559 相关深度面试题目 560 总结 561 33 不可忽视的前端安全:单页应用鉴权设计 562 单页应用鉴权简介 562 单页应用鉴权实战 565 采用Authentication cookie实现鉴权 567 混合使用JWT和cookie进行鉴权 568 总结 571 结束语 572 |