前言
自互联网出现以来,Web 前端便不断地发生变化。其间,我们看到了网页端脚本语言的萌发和进化,JavaScript 语言标准的制定,各浏览器厂商之间的竞争,等等。
随着 Web 应用的发展,涌现了大量优秀的库和框架,例如jQuery、lodash、Underscore、Backbone、Angular、React、Vue 等,这些库和框架大幅提升了Web开发与维护效率。
但近几年,Web前端的发展已经趋乎于病态,各种各样的“轮子”层出不穷,Web前端的发展速度已经有超过Web前端开发人员的学习速度之势,将开发人员远远甩在了后面。新的技术不断涌现,有些新技术是我们工作中无法回避的技术栈。虽然我们明知道这些新技术在未来注定会被淘汰,但迫于工作的需要不得不追赶它们。新的“轮子”不断出现,旧的“轮子”还在更新,这就导致Web前端学习的疲劳性,而且这种疲劳是心理上的。
例如,Grunt 学完, Glup 来了,Glup 学完,webpack又来了;又如less、sass、stylus,甚至刚学会一种新东西,转眼间就发现它已经被淘汰了;再如,公司团队要求掌握某些技术栈,你能不学吗?显然不能!
那么,我们该怎么办呢?“轮子”被造出来的初衷就是为了更好地解决相应的问题,它应该是能解决我们的问题的,而不是让我们惧怕学习它。在面对新的“轮子”时,不要盲目追赶,无论这些“轮子”出现或更新得有多快,最基础的核心知识是不变的。我们应该把自己的注意力放在问题本身上,而不是纠结于“轮子”,将更多的精力放在学习基础知识上。
Web 前端的三大核心知识为HTML、CSS、JavaScript。在本书中,不会过多涉及 HTML、CSS,而是将重点放在JavaScript上。
本书将从最基础的知识开始,循序渐进地讲解 JavaScript 的基本知识和高级技巧,力求内容简单易懂、清晰明了,通过大量实例带领读者学会 Web 前端开发中常用的 JavaScript 知识及开发技巧。
主要内容
全面介绍 JavaScript 的核心语法。
解读变量作用域和闭包。
ES6+ 的新特性。
前端模块化。
自动化构建工具。
客户端存储。
使用性能优化技术来改善用户体验。
阅读建议
阅读本书时,如果遇到不理解的内容,不要刻意耗费时间去理解和钻研,因为有可能你耗费的宝贵时间换来的是一个错误的理解结果,这是非常不值得的,我就吃过这方面的很多亏。所以我的建议是,在阅读时要注意保持不求甚解的态度,此刻不理解的,可能是自身水平没到,当自己的知识到了一定水平,自然就理解了。因此,读书时一定要多读几遍,“书读百遍,其义自见”,这是自古流传下来的道理,我也相信同一本书每读一遍都会有不同的收获。
下面是各章内容的简单介绍。
第 1、2 章:介绍 JavaScript 的诞生过程,以及 Chrome 开发者工具的简单使用方法。
第 3 章:主要介绍 JavaScript 的基本语法,为之后的 JavaScript 编程打下坚实的基础。
第 4~7 章:进一步介绍 JavaScript 中的几个特殊对象,包括函数、数组、对象、类。利用这些对象,可以更好地组织代码。
第 8 章:介绍一种比较常见的数据交换格式—JSON。
第 9~12 章:主要介绍 JavaScript 的另外两大核心—BOM 和 DOM,并讲解一些常用的 BOM 对象和 DOM 对象的操作方法。
第 13 章:介绍 JavaScript 中的模块。
第 14 章:介绍 cookie 和本地存储,以此了解Web前端与Web后端是如何进行用户鉴权的。
第 15 章:介绍一些优化Web前端性能的方案,从资源的请求、压缩、加载、缓存等方面着手,一步步实现Web前端性能优化。
第 16 章:介绍目前流行的一些开源库和框架。
附录 A:以一个文字和图片的合成案例,介绍 Canvas 是如何使用的。
附录 B:介绍Web前端中的 SEO,避免一些误操作导致用户体验降低。
附录 C:介绍一些常见的编码规范,为代码的开发与维护建立良好的基础。
代码约定
// -> 用于显示表达式的返回值,例如:
1 + 1; // -> 2
'hello world'; // -> "hello world"
// > 用于显示 console.log 的执行结果及报错信息,例如:
console.log(1+1); // > 2
console.log('hello', 'world'); // > hello world
本书读者
本书既适合JavaScript 语言初学者作为入门的教程,也适合 JavaScript 语言爱好者作为进阶的参考。如果在阅读本书的过程中碰到问题,请扫描右侧的二维码,联系相关技术人员进行处理。
作者
2020年