欢迎光临
免费的PDF电子书下载网站

JS全书:JavaScript Web前端开发指南 PDF下载

编辑推荐

全面介绍JavaScript的核心语法。解读变量作用域和闭包。ES6 的新特性。前端模块化。自动化构建工具。客户端存储。使用性能优化技术来改善用户体验。

 ;

内容简介

本书从JavaScript的基础语法开始讲解,循序渐进地介绍了JavaScript的必备知识和高级技巧,并通过大量实例带领读者掌握Web前端开发中常用的JavaScript知识及开发技巧。本书着重于为JavaScript编程开发人员及爱好者提供简单易懂、清晰明了的学习路径。本书结构清晰,内容编排由浅入深,能够帮助读者拥有Web开发中不可或缺的能力和技巧。 本书既适合JavaScript语言初学者,也适合JavaScript语言进阶者。

作者简介

暂无

JS全书:JavaScript Web前端开发指南 PDF下载

目录

第1章 初入 JavaScript ; ; ; ; ; ; 001

1.1 JavaScript 简介 ; ; ; ; ; 002

1.2 JavaScript 起源 ; ; ; ; ; 003

1.3 JavaScript 实现 ; ; ; ; ; 004

1.3.1 ECMAScript 004

1.3.2 BOM ; ; ; 005

1.3.3 DOM ; ; ; 005

1.4 JavaScript 使用 ; ; ; ; ; 005

1.4.1 内联的 JavaScript ; ; ; ; ; ; 005

1.4.2 外部的 JavaScript ; ; ; ; ; ; 006

1.4.3 行内的 JavaScript ; ; ; ; ; ; 007

第2章 准备工作 008

2.1 开发工具 ; ; ; ; ; ; ; 009

2.1.1 Sublime Text ; ; ; ; ; ; ; ; 009

2.1.2 Visual Studio Code ; ; ; ; ; ; 010

2.1.3 WebStorm ; ; ; 011

2.1.4 Atom ; ; ; 012

2.2 Chrome 开发者工具 ; ; ; ; 012

2.2.1 信息类方法 ; ; ; ; ; ; ; ; 013

2.2.2 清除历史记录 ; ; ; ; 013

2.2.3 保留历史记录 ; ; ; ; 014

第3章 语法 015

3.1 基本语法 ; ;      016

3.1.1 语句     016

3.1.2 注释     016

3.1.3 标识符         017

3.2 变量和变量作用域        019

3.2.1 变量     019

3.2.2 声明变量     019

3.2.3 非声明变量         024

3.3 数据类型        025

3.3.1 内存空间     025

3.3.2 基本数据类型与引用数据类型         025

3.3.3 浅拷贝与深拷贝         027

3.3.4 typeof 与 instanceof 029

3.3.5 类型转换     031

3.3.6 基本包装类型     035

3.4 字符串    036

3.4.1 字符串的特点     039

3.4.2 length 属性         039

3.4.3 实例方法     039

3.5 运算符    048

3.5.1 算术运算符         048

3.5.2 逻辑运算符         050

3.5.3 比较运算符         051

3.5.4 三元运算符         052

3.5.5 赋值     053

3.5.6 位运算符     054

3.5.7 异步操作符 async function        055

3.5.8 其他运算符         059

3.5.9 运算符优先级     060

3.6 条件语句        062

3.6.1 if 语句         062

3.6.2 switch 语句         063

3.6.3 三元运算符         064

3.7 循环语句        065

3.7.1 for         065

3.7.2 while    065

3.7.3 for…in  067

3.7.4 for…of  068

3.7.5 break 和 continue 语句   068

3.8 错误处理        069

3.8.1 try…catch    069

3.8.2 throw   070

3.9 严格模式        070

第4章 函数 072

4.1 定义        073

4.1.1 返回值         073

4.1.2 箭头函数(Arrow Function)    074

4.1.3 关于 this     075

4.2 函数的属性和方法        080

4.2.1 length 属性         080

4.2.2 name   080

4.3 参数        080

4.3.1 按值传递     081

4.3.2 arguments   082

4.3.3 Rest 参数(剩余参数)   083

4.3.4 箭头函数中的 arguments 对象       083

4.3.5 默认参数     083

4.4 递归        084

4.5 闭包        086

4.5.1 什么是闭包         087

4.5.2 实践中的闭包     087

4.6 IIFE 089

4.7 高阶函数        090

4.7.1 回调函数     090

4.7.2 偏函数         091

4.7.3 柯里化         091

4.7.4 纯函数         092

第5章 数组 093

5.1 定义        094

5.2 多维数组        094

5.3 length 属性   094

5.4 方法        094

5.4.1 Array.isArray()     095

5.4.2 Array.of()      095

5.4.3 Array.from()          095

5.5 实例方法        099

5.5.1 concat()        099

5.5.2 copyWithin()         099

5.5.3 keys()、values() 和 entries()     100

5.5.4 forEach() 和 map()     100

5.5.5 every() 和 some()       101

5.5.6 filter()  101

5.5.7 fill()       102

5.5.8 find() 和 findIndex()   102

5.5.9 includes()     102

5.5.10 indexOf() 和 lastIndexOf()        103

5.5.11 join() 和 splice()        103

5.5.12 push()、pop()、unshift() 和 shift() 103

5.5.13 reduce() 和 reduceRight()        104

5.5.14 reverse()    104

5.5.15 slice() 104

5.5.16 sort() 104

5.5.17 toString()   105

5.5.18 toLocaleString() 105

第6章 对象 106

6.1 定义        107

6.1.1 定义对象的属性         107

6.1.2 定义对象的方法         108

6.1.3 getter 和 setter         108

6.2 属性        109

6.2.1 原型及原型链     109

6.2.2 更好的类型检测         110

6.2.3 构造函数     111

6.3 方法        112

6.3.1 Object.getPrototypeOf() 和 Object.setPrototypeOf()       112

6.3.2 Object.create()    112

6.3.3 Object.assign()    112

6.3.4 Object.defineProperty() 和 Object.getOwnPropertyDescriptor()     113

6.3.5 Object.defineProperties()和Object.getOwnPropertyDescriptors()   114

6.3.6 Object.keys()、Object.values() 和 Object.entries()  114

6.3.7 Object.freeze() 和 Object.isFrozen()          115

6.3.8 Object.seal() 和 Object.isSealed()     115

6.3.9 Object.preventExtensions() 和 Object.isExtensible()        116

6.3.10 Object.is()  116

6.3.11 Object.getOwnPropertyNames()       116

6.3.12 Object.getOwnPropertySymbols()     117

第7章 类     118

7.1 定义        119

7.2 constructor     119

7.2.1 实例化         119

7.2.2 类的方法     120

7.2.3 this 指向     120

7.2.4 constructor 属性        121

7.3 继承        122

7.4 静态方法        123

第8章 JSON          125

8.1 简介        126

8.2 JSON的解析  126

8.3 JSON的序列化       129

第9章 BOM          132

9.1 window   133

9.1.1 setTimeout  133

9.1.2 setInterval   133

9.1.3 定时器的问题     134

9.2 history     134

9.2.1 history 134

9.2.2 ajax 的前进后退         135

9.3 location   137

9.3.1 assign() 和 replace() 138

9.3.2 reload()         138

9.3.3 属性     138

9.4 navigator         139

第10章 DOM       140

10.1 DOM 简介   141

10.1.1 节点  141

10.1.2 节点类型  141

10.2 节点查找      142

10.2.1 获取单个节点 Node         142

10.2.2 获取节点集合 NodeList  143

10.3 节点操作      146

10.3.1 创建节点  146

10.3.2 新增节点  147

10.3.3 删除节点  148

10.3.4 修改节点  149

10.4 属性操作      149

10.4.1 getAttribute()    149

10.4.2 setAttribute()    150

10.4.3 点符号       150

10.4.4 classList 属性   150

10.5 内容操作      151

10.6 样式操作      152

10.6.1 getComputedStyle()  152

10.6.2 设置CSS样式   152

第11章 事件        153

11.1 事件处理      154

11.1.1 addEventListener()    154

11.1.2 removeEventListener()      155

11.2 事件流 156

11.3 事件对象与事件类型 157

11.3.1 阻止默认行为  159

11.3.2 阻止事件冒泡  159

11.3.3 事件委托  160

11.4 自定义事件 161

第12章 Ajax         163

12.1 Ajax 简介     164

12.1.1 XMLHttpRequest       164

12.1.2 Fetch 167

12.2 HTTP     168

12.2.1 客户端、服务端       168

12.2.2 代理服务器       168

12.2.3 HTTP是无状态,有会话的     168

12.2.4 HTTP 流    169

12.2.5 http1.0的问题 170

12.4 跨域      171

12.4.1 浏览器的同源策略  171

12.4.2 jsonp  171

12.4.3 img ping     171

12.4.4 window.name    172

12.4.5 postMessage     173

12.4.6 CORS 174

第13章 模块和构建工具   175

13.1 模块      176

13.1.1 CommonJS          176

13.1.2 AMD  177

13.1.3 CMD  177

13.1.4 UMD  178

13.2 ES6中的模块        178

13.2.1 export         178

13.2.2 import        179

13.2.3 导入、导出时的重命名  179

13.3 构建工具      180

13.3.1 npm 的使用      180

13.3.2 npm 发布包      181

第14章 客户端存储   184

14.1 cookie   185

14.1.1 什么是 cookie  185

14.1.2 有效期和作用域       185

14.1.3 关于 session     186

14.1.4 关于 token        186

14.2 本地存储      186

14.2.1 localStorage       187

14.2.2 .和 [ ] 操作       188

14.2.3 sessionStorage  188

14.3 IndexedDB    188

第15章 性能优化        191

15.1 减少请求数 192

15.1.1 合并代码  192

15.1.2 CSS Sprite  193

15.1.3 data url      193

15.2 减少代码体积      194

15.3 缓存文件      196

15.3.1 浏览器缓存       196

15.3.2 客户端缓存       197

15.4 使用内容分发网络 CDN    197

15.6 延迟加载      197

15.6.1 实现  198

15.6.2 完整代码  198

15.7 避免重定向 199

15.8 服务端gzip  199

15.8.1 什么是 gzip      199

15.8.2 gzip 压缩原理  200

第16章 类库和框架   201

16.1 预处理器      202

16.2 辅助库 202

16.2.1 jQuery         202

16.2.2 axios  203

16.2.3 Underscore        203

16.2.4 lodash         204

16.2.5 Moment.js          204

16.3 框架      205

16.3.1 Angular      205

16.3.2 React 205

16.3.3 Vue.js         205

附录 A Canvas     206

附录 B 前端中的 SEO         209

B.1 robots.txt        209

B.2 title          209

B.3 meta       210

B.4 其他 HTML 标签 210

B.5 结构化数据标记   210

附录 C 编程风格         212

C.1 减少全局变量污染        212

C.2 避免使用 var         212

C.3 使用字面量   212

C.4 字符串   213

C.5 解构        213

C.6 函数        213

C.7 模块        214

C.8 其他        214

前沿

自互联网出现以来,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年

JS全书:JavaScript Web前端开发指南 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:JS全书:JavaScript Web前端开发指南