新書推薦:
《
首辅养成手册(全三册)(张晚意、任敏主演古装剧《锦绣安宁》原著小说)
》
售價:NT$
551.0
《
清洁
》
售價:NT$
296.0
《
组队:超级个体时代的协作方式
》
售價:NT$
352.0
《
第十三位陪审员
》
售價:NT$
245.0
《
微观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:NT$
709.0
《
Python贝叶斯深度学习
》
售價:NT$
407.0
《
文本的密码:社会语境中的宋代文学
》
售價:NT$
306.0
《
启微·狂骉年代:西洋赛马在中国
》
售價:NT$
357.0
|
編輯推薦: |
本书从Web开发初学者的视角出发,将理论和实践相结合,循序渐进地讲解日常工作中使用频率非常高的JavaScript核心知识点,让读者在学习的过程中不断提升JavaScript技能水平,并能够将所学知识运用到实际项目开发中。
|
內容簡介: |
JavaScript在日常开发工作中使用频率非常高。本书从JavaScript初学者的视角出发,将理论和实践相结合,通过循序渐进、由浅入深的方式详解JavaScript核心知识点,让读者在学习的过程中不断提升使用JavaScript的技能水平,并能够将所学知识运用到实际开发当中去。 本书分为4部分,共12章,主要内容包括JavaScript语法基础、JavaScript流程控制、数组、函数、作用域、对象和内置对象、BOM、DOM和事件、JavaScript面向对象编程、函数进阶、正则表达式、贪吃蛇案例、ES6~ES10特性和TypeScript。 本书适合所有Web技术从业人员、前端开发工程师,也适合作为高等院校和培训机构计算机及相关专业师生的教学参考书。
|
關於作者: |
邹琼俊,湖南人,Web前端与.NET高级工程师,CSDN学院讲师,专注于.NET与Web前端开发,对.NET 与Web前端开发有较深研究。著有热销图书《Vue.js 2.x实践指南》《ASP.NET MVC企业级实战》。
|
目錄:
|
第1部分 JavaScript基础
第1章 JavaScript 语法基础 3
1.1 基本概念和开发工具 3
1.1.1 计算机程序 3
1.1.2 计算机语言 3
1.1.3 编程语言 3
1.1.4 翻译器 4
1.1.5 编程语言和标记语言的区别 4
1.1.6 计算机基础 5
1.1.7 浏览器 6
1.1.8 网页、网站和应用程序 6
1.1.9 开发工具 6
1.2 JavaScript 是什么 7
1.2.1 JavaScript语言特点 8
1.2.2 编译语言和脚本语言的对比 8
1.2.3 JavaScript应用场景 8
1.2.4 JavaScript与浏览器的关系 9
1.2.5 JavaScript的组成 9
1.3 初次体验JavaScript 代码 10
1.3.1 注意事项 11
1.3.2 代码注释 12
1.4 变量 13
1.4.1 变量引入、声明和初始化 13
1.4.2 变量在内存中的存储 13
1.4.3 变量的命名规则和规范 14
1.5 数据类型 15
1.5.1 number类型 16
1.5.2 进制介绍(了解) 16
1.5.3 string类型 19
1.5.4 boolean类型 21
1.5.5 undefined和null 21
1.5.6 数据类型转换 21
1.5.7 字面量 23
1.5.8 获取变量的类型 24
1.5.9 复杂数据类型object 24
1.6 运算符 25
1.6.1 算术运算符 25
1.6.2 一元运算符 25
1.6.3 逻辑运算符 26
1.6.4 关系运算符 26
1.6.5 赋值运算符 26
1.6.6 运算符的优先级 27
第2章 JavaScript流程控制 28
2.1 顺序结构 28
2.2 分支结构 28
2.2.1 if语句 28
2.2.2 三元运算符 30
2.2.3 switch语句 30
2.2.4 分支语句总结 31
2.2.5 布尔类型的隐式转换 32
2.3 循环结构 32
2.3.1 while语句 32
2.3.2 do-while语句 33
2.3.3 for语句 34
2.3.4 continue和break 35
2.4 调试 35
第3章 数组、函数、作用域 37
3.1 数组 37
3.1.1 为什么要学习数组 37
3.1.2 数组的概念 37
3.1.3 数组的定义 37
3.1.4 获取数组元素 39
3.1.5 遍历数组 39
3.1.6 数组中新增元素 39
3.1.7 数组案例 40
3.2 函数 41
3.2.1 为什么要有函数 41
3.2.2 什么是函数 42
3.2.3 函数的声明 42
3.2.4 函数的调用 42
3.2.5 函数的参数 43
3.2.6 函数的返回值 44
3.2.7 arguments的使用 45
3.2.8 匿名函数 45
3.2.9 自调用函数 46
3.2.10 函数的数据类型 46
3.3 作用域 47
3.3.1 全局变量和局部变量 47
3.3.2 块级作用域 48
3.3.3 词法作用域 48
3.3.4 作用域链 49
3.3.5 变量提升 50
3.3.6 预解析 50
第4章 对象和内置对象 53
4.1 对象 53
4.1.1 为什么要有对象 53
4.1.2 什么是对象 53
4.1.3 JavaScript中的对象 54
4.1.4 对象创建方式 54
4.1.5 属性和方法 55
4.1.6 new关键字 56
4.1.7 this关键字 56
4.1.8 对象操作 57
4.2 基本类型和复杂类型 58
4.2.1 堆和栈 58
4.2.2 值类型在内存中的存储 58
4.2.3 引用类型在内存中的存储 59
4.2.4 将值类型作为函数的参数 59
4.2.5 将引用类型作为函数的参数 60
4.3 内置对象 61
4.3.1 Math对象 61
4.3.2 Date对象 62
4.3.3 Array对象 65
4.3.4 基本包装类型 68
4.3.5 String对象 68
4.3.6 Number对象 71
4.3.7 Boolean对象 72
第2部分 Web API
第5章 BOM 75
5.1 BOM简介 75
5.1.1 BOM的概念 75
5.1.2 BOM的顶级对象Window 75
5.2 对话框 77
5.2.1 alert 77
5.2.2 prompt 77
5.2.3 confirm 78
5.3 页面加载事件 78
5.4 定时器 79
5.5 Location对象 80
5.6 History对象 82
5.7 Navigator对象 84
第6章 DOM和事件 86
6.1 DOM 86
6.1.1 DOM的概念 86
6.1.2 模拟文档树结构 87
6.1.3 获取DOM元素 88
6.2 事件 90
6.3 属性操作 91
6.3.1 非表单元素属性 91
6.3.2 innerText、textContent 94
6.3.3 innerHTML和innerText的区别 94
6.3.4 表单元素属性 95
6.3.5 自定义属性操作 99
6.3.6 样式操作 101
6.3.7 类名操作 101
6.3.8 创建元素的三种方式 103
6.4 节点操作 105
6.4.1 节点的基本操作 105
6.4.2 节点属性操作 107
6.4.3 节点层级 107
6.5 事件详解 110
6.5.1 注册移除事件的三种方式 110
6.5.2 事件冒泡 112
6.5.3 事件的三个阶段 114
6.5.4 事件对象的属性和方法 115
6.6 偏移量 120
6.6.1 获取元素:offset系列 120
6.6.2 可视区域:client系列 121
6.6.3 滚动偏移:scroll系列 122
6.7 综合案例 123
6.7.1 轮播图 123
6.7.2 固定导航栏 129
6.7.3 导航栏特效 131
第3部分 JavaScript 进阶
第7章 JavaScript 面向对象编程 137
7.1 面向对象简介 137
7.2 创建对象的方式 138
7.2.1 以字面量的方式创建对象 138
7.2.2 通过调用系统的构造函数来创建对象 139
7.2.3 通过自定义构造函数来创建对象 139
7.2.4 以工厂模式创建对象 140
7.2.5 工厂模式和自定义构造函数创建对象的区别 140
7.2.6 构造函数和对象的关系 141
7.3 原型的引入 142
7.4 面向过程和面向对象 143
7.5 构造函数、原型对象、实例对象之间的关系 145
7.6 利用原型共享数据 145
7.6.1 原型的简单语法 145
7.6.2 原型中的方法使用 146
7.6.3 内置对象的原型方法 147
7.6.4 把局部变量变成全局变量 148
7.7 原型及原型链 149
7.7.1 原型指向可以改变 149
7.7.2 实例对象属性和原型对象属性重名问题 151
7.7.3 通过一个HTML的元素对象来查看原型链 153
7.8 实现继承 153
7.8.1 原型实现继承 154
7.8.2 构造函数实现继承 155
7.8.3 组合继承 156
7.8.4 拷贝继承 157
第8章 函数进阶和其他 159
8.1 函数的定义方式 159
8.2 函数的调用方式 160
8.2.1 函数内 this 指向的不同场景 160
8.2.2 严格模式 162
8.2.3 函数也是对象 163
8.2.4 数组中函数的调用 164
8.2.5 apply和call调用 165
8.2.6 bind方法 167
8.2.7 call、apply和bind的区别 168
8.3 函数中自带的属性 168
8.4 将函数作为参数使用 169
8.5 将函数作为返回值使用 170
8.6 作用域和作用域链 171
8.7 闭包 173
8.8 沙箱模式 174
8.9 递归 175
8.10 浅拷贝和深拷贝 176
8.11 递归案例 179
8.11.1 遍历DOM树 179
8.11.2 生成菜单导航 180
8.12 伪数组和数组 182
8.13 JavaScript 垃圾回收机制 184
8.13.1 可访问性 184
8.13.2 一个简单的示例 184
8.13.3 两个引用 185
8.13.4 相互引用的对象 186
8.13.5 孤岛 187
8.13.6 内部算法 188
第9章 正则表达式 190
9.1 正则表达式简介 190
9.1.1 正则表达式的概念 190
9.1.2 正则表达式的作用 190
9.1.3 正则表达式的特点 190
9.1.4 正则表达式的组成 191
9.1.5 常用案例 192
9.1.6 如何验证正则表达式的正确性 192
9.2 在JavaScript 中使用正则表达式 193
9.2.1 创建正则对象 193
9.2.2 正则匹配 194
9.2.3 正则提取 194
9.2.4 正则替换 196
9.3 正则表达式使用案例 197
9.3.1 密码强度验证 197
9.3.2 表单验证 200
第10章 贪吃蛇案例 203
10.1 案例介绍 203
10.2 实现步骤 204
10.2.1 画地图和操作按钮 204
10.2.2 封装食物对象 205
10.2.3 封装小蛇对象 207
10.2.4 封装游戏对象 210
10.2.5 游戏调用 212
第4部分JavaScript下一代标准
第11章 ES6~ES10新特性 215
11.1 ES6新特性 215
11.1.1 箭头函数 215
11.1.2 const和let 216
11.1.3 模板字符串 216
11.1.4 函数的参数默认值 216
11.1.5 延展操作符 217
11.1.6 对象解构 217
11.1.7 for-of和for-in 217
11.1.8 对象属性简写 218
11.1.9 Promise 218
11.1.10 class 221
11.1.11 模块化 222
11.2 ES7新特性 224
11.2.1 Array.prototype.includes 224
11.2.2 指数操作符** 224
11.3 ES8新特性 224
11.3.1 async和await 224
11.3.2 Object.valuesObject.entries 226
11.3.3 padStart和padEnd 227
11.4 ES9新特性 228
11.4.1 for await-of 228
11.4.2 Object Rest Spread 229
11.4.3 Promise.prototype.finally 231
11.4.4 新的正则表达式特性 232
11.5 ES10新特性 234
11.5.1 Array.prototype.flat 234
11.5.2 Array.prototype.flatMap 235
11.5.3 String.trimStart和String.trimEnd 235
11.5.4 String.prototype.matchAll 235
11.5.5 修改catch绑定 236
11.5.6 新的基本数据类型BigInt 236
11.5.7 Object.fromEntries 236
11.5.8 Symbol.prototype.description 237
11.5.9 Function.prototype.toString 237
第12章 TypeScript 238
12.1 TypeScript简介 238
12.1.1 安装TypeScript 238
12.1.2 开始我们的第一个TypeScript程序 239
12.1.3 类型注解 241
12.1.4 接口 241
12.1.5 类 242
12.2 TypeScript基础类型 242
12.2.1 元组 243
12.2.2 枚举 243
12.2.3 任意值 244
12.2.4 空值 244
12.2.5 null和undefined 245
12.2.6 never 245
12.2.7 类型断言 245
12.3 总结 245
|
內容試閱:
|
为什么写作此书
对于每一位Web开发者而言,JavaScript入门筑基,Web全栈登峰造极。不管你是从事前端开发还是后端开发,只要是做Web应用或者H5移动应用,就离不开JavaScript。JavaScript发展壮大了这么多年,活力依然不减,在2019年编程语言流行度排名中JavaScript排在第6位。
任何一门语言都是在不断发展和变化的,除非它已经停止更新,JavaScript也不例外,从ES6到ES10,再到JavaScript超集TypeScript,我们都能够看到它的壮大,同时也显示出JavaScript强大的活力和生命力。
如何阅读本书
学习一门语言,我们往往不需要掌握它的全部内容,事实上,也几乎不可能掌握它的所有内容,我们只需要重点关注并掌握它在实际工作中绝大多数的应用,利用它来帮助我们完成开发目标即可。
如果是初学者,建议尽量按照顺序逐章阅读,并把所有示例都实现一遍;如果是有经验的开发者,可以选择自己感兴趣的内容进行阅读。在阅读过程中,你可以按照自己的想法,在原有的示例上修改或新增一些内容。
本书特点
本书以实用为主,内容言简意赅、通俗易懂,采用理论和实践相结合、由浅入深的方式来阐述JavaScript在实际工作中的各种应用,相信你在阅读过程中不会感到枯燥乏味。
适合人群
本书从初学者的视角,将理论和实践相结合,循序渐进地讲解日常工作中使用频率非常高的JavaScript核心知识点,让读者在学习的过程中不断提升使用JavaScript的技能水平,并能够将所学知识运用到实际应用中,非常适合Web从业人员阅读,同时也适合作为高等院校和培训机构计算机专业课程的教学参考书。
源码及勘误
本书配套的源代码,请用微信扫描右边清华网盘二维码获取。如果有问题,请电子邮件联系booksaga@163.com,邮件主题为JavaScript实用教程。
由于水平有限,书中难免存在一些纰漏,如果你发现了问题,可以直接与我联系,我会第一时间在本人的技术博客中加以改正,万分感谢!
作者简介
邹琼俊,湖南人,Web全栈工程师,CSDN学院讲师,博客园知名博主,著有图书《ASP.NET MVC企业级实战》《H5 移动应用实战开发》《Vue.js 2.x实践指南》。
致谢
首先要感谢的是夏毓彦编辑,没有他耐心的指导这本书不可能出版,其次是清华大学出版社的其他人员,正是他们的通力协作才使得整个创作不断被完善。
写一本书所费的时间和精力都是巨大的,写书期间,我占用了太多本该陪家人的时间,在这里要特别感谢我的爱人王丽丽,谢谢她帮我处理了许多生活上面的琐事;感谢我的父母,是他们含辛茹苦地把我培养成人。另外,还要感谢公司给我提供了一个自我提升的发展平台,让我顺利完成了本书的编写。
作 者
2021年1月
|
|