《Javscript实用教程》目录
图书购买地址:
注:本书提供源码和ppt课件,下载地址:https://github.com/zouyujie/js_book
目录
Javascript实用教程... 1
目录... 2
第 1 部分... 12
◄ Javascript基础 ►. 12
第 1 章... 13
◄ JavaScript 语法基础►. 13
1.1 基本概念和开发工具... 13
1.1.1 编程语言... 13
1.1.2 计算机语言... 13
1.1.3 编程语言... 13
1.1.4 翻译器... 14
1.1.5 编程语言和标记语言区别... 14
1.1.6 计算机基础... 14
1.1.7 浏览器... 16
1.1.8 网页、网站和应用程序... 16
1.1.9 开发工具... 16
1.2 JavaScript 是什么... 18
1.2.1 JavaScript语言特点... 18
1.2.2 编译语言和脚本语言... 19
1.2.3 JavaScript应用场景... 19
1.2.4 JavaScript 与浏览器的关系... 20
1.2.5 JavaScript的组成... 20
1.3 初次体验JavaScript 代码... 21
1.3.1 JavaScript代码注意事项:... 22
1.3.2 代码注释... 23
1.4 变量... 24
1.4.1 变量引入、声明和初始化... 24
1.4.2 变量在内存中的存储... 25
1.4.3 变量的命名规则和规范... 25
1.4 数据类型... 27
1.4.1 Number类型... 27
1.4.2 进制介绍(了解)... 27
1.4.3 String类型... 30
1.4.4 Boolean类型... 32
1.4.5 Undefined和Null 32
1.4.6 数据类型转换... 32
1.4.7 字面量... 34
1.4.8 获取变量的类型... 34
1.4.7 复杂数据类型 Object(对象)... 35
1.5 运算符... 36
1.5.1 算术运算符... 36
1.5.2 一元运算符... 36
1.5.3 逻辑运算符(布尔运算符) 37
1.5.4 关系运算符(比较运算符) 37
1.5.5 赋值运算符... 37
1.5.6 运算符的优先级... 37
第 2 章... 39
◄ JavaScript流程控制►. 39
2.1 顺序结构... 39
2.2 分支结构... 39
2.2.1 if语句... 39
2.2.2 三元运算符... 41
2.2.3 switch语句... 41
2.2.4 分支语句总结... 42
2.2.5 布尔类型的隐式转换... 43
2.3 循环结构... 43
2.3.1 while语句... 43
2.3.2 do...while语句... 44
2.3.3 for语句... 45
2.3.4 continue和break. 46
2.3 调试... 47
第 3 章... 48
◄ 数组、函数、作用域►. 48
3.1 数组... 48
3.1.1为什么要学习数组... 48
3.1.2 数组的概念... 48
3.1.3 数组的定义... 48
3.1.4 获取数组元素... 49
3.1.5 遍历数组... 50
3.1.6 数组中新增元素... 50
3.1.7 数组案例... 50
3.2 函数... 52
3.2.1 为什么要有函数... 52
3.2.2 什么是函数... 52
3.2.3 函数的定义... 53
3.2.4 函数的调用... 53
3.2.5 函数的参数... 54
3.2.6 函数的返回值... 55
3.2.7 arguments的使用... 56
3.2.8 匿名函数... 56
3.2.9 自调用函数... 56
3.2.10 函数是一种数据类型... 57
3.3 作用域... 58
3.3.1 全局变量和局部变量... 58
3.3.2 块级作用域... 59
3.3.3 词法作用域... 59
3.3.4 作用域链... 60
3.3.5 变量提升... 60
3.3.6 预解析... 61
第 4 章... 64
◄ 对象和内置对象►. 64
4.1 对象... 64
4.1.1 为什么要有对象... 64
4.1.2 什么是对象?... 64
4.1.3 JavaScript中的对象... 65
4.1.4 对象创建方式... 65
4.1.5 属性和方法... 66
4.1.6 new关键字... 67
4.1.7 this详解... 67
4.1.8 对象操作... 68
4.1.8.1 遍历对象的属性... 68
4.1.8.2 删除对象的属性... 68
4.2 基本类型和复杂类型... 69
4.2.1 堆和栈... 69
4.2.2 值类型在内存中的存储... 69
4.2.3 引用类型在内存中的存储... 70
4.2.4 值类型作为函数的参数... 71
4.2.5 引用类型作为函数的参数... 72
4.3 内置对象... 73
4.3.1 Math对象... 73
4.3.2 Date对象... 74
4.3.3 Array对象... 76
4.3.4 基本包装类型... 79
4.3.5 String对象... 80
第 2 部分... 83
◄ Web API ►. 83
Web API介绍... 83
API的概念... 83
Web API的概念... 83
JavaScript的组成... 83
第 5 章... 85
◄ BOM►. 85
5.1 BOM介绍... 85
5.1.1 BOM的概念... 85
5.1.2 BOM的顶级对象window.. 85
5.2 对话框... 87
5.2.1 alert() 87
5.2.2 prompt() 88
5.2.3 confirm() 88
5.2 页面加载事件... 89
5.3 定时器... 89
5.4 location对象... 90
5.5 history对象... 93
5.6 navigator对象... 94
第 6 章... 97
◄ DOM和事件►. 97
6.1 DOM... 97
6.1.1 DOM的概念... 97
6.1.2 模拟文档树结构... 98
6.2.3 DOM经常进行的操作... 99
6.2 事件... 101
6.2.1 事件的基本使用... 101
6.3 属性操作... 102
6.3.1 非表单元素的属性... 102
6.3.2 innerText、textContent 105
6.3.3 innerHTML和innerText的区别... 105
6.3.4 表单元素属性... 106
6.3.5 自定义属性操作... 110
6.3.6 样式操作... 112
6.3.7 类名操作... 112
6.3.8 创建元素的三种方式... 114
6.4 节点操作... 116
6.4.1 节点的基本操作... 116
6.4.2 节点属性操作... 118
6.4.3 节点层级... 118
6.4.3.1 获取单个的子节点... 118
6.4.3.2 获取所有的子节点... 119
6.4.3.3 获取父节点... 119
6.5 事件详解... 121
6.5.1 注册/移除事件的三种方式... 121
6.5.2 事件冒泡... 123
6.5.3 事件的三个阶段... 125
6.5.4 事件对象的属性和方法... 127
6.5.4.1 事件句柄 (Event Handlers). 127
6.5.4.2 常用的鼠标和键盘属性... 128
6.5.4.3 event属性和方法总结... 129
6.5.4.4 案例... 130
6.6 偏移量... 132
6.6.1 offset系列:获取元素... 132
6.6.2 client系列可视区域... 134
6.6.3 滚动偏移:scroll系列... 135
6.7 综合案例... 136
6.7.1 轮播图... 136
6.7.2 固定导航栏... 142
6.7.3 导航栏特效... 145
第 3 部分... 149
◄ Javascript 高级►. 149
第 7 章... 150
◄ JavaScript 面向对象编程 ►. 150
7.1 面向对象介绍... 150
7.2 创建对象的方式... 151
7.2.1 字面量的方式... 151
7.2.2 调用系统的构造函数... 152
7.2.3 自定义构造函数方式... 152
7.2.4 工厂模式创建对象... 153
7.2.5 工厂模式和自定义构造函数创建对象的区别... 153
7.2.6 构造函数和对象的关系... 154
7.3 原型的引入... 155
7.4 面向过程和面向对象... 156
7.5 构造函数、原型对象、实例对象之间的关系... 158
7.6 利用原型共享数据... 158
7.6.1 原型的简单语法... 158
7.6.2 原型中方法的使用... 159
7.6.3 内置对象的原型方法... 160
7.6.4 把局部变量变成全局变量... 161
7.7 原型及原型链... 162
7.7.1 原型指向可以改变... 162
7.7.2 实例对象属性和原型对象属性重名问题... 164
7.7.3 通过一个HTML的元素对象来查看原型链... 166
7.8 实现继承... 166
7.8.1 原型实现继承... 167
7.8.2 构造函数实现继承... 167
7.8.3 组合继承... 169
7.8.4 拷贝继承... 170
第 8 章... 172
◄ 函数进阶和其它 ►. 172
8.1 函数的定义方式... 172
8.2 函数的调用方式... 173
8.2.1 函数内 this 指向的不同场景... 173
8.2.2 严格模式... 174
8.2.3 函数也是对象... 175
8.2.4 数组中函数的调用... 176
8.2.5 apply和call调用... 177
8.2.6 bind方法... 179
8.2.7 call、apply、bind的区别... 180
8.3 函数中自带的属性介绍... 180
8.4 函数作为参数使用... 181
8.3 函数作为返回值使用... 182
8.4 作用域和作用域链... 183
8.5 闭包... 184
8.6 沙箱模式... 186
8.7 递归... 187
8.8 浅拷贝和深拷贝... 188
8.9 递归案例... 191
8.9.1 遍历DOM树... 191
8.9.2 生成菜单导航... 192
8.10 伪数组和数组... 194
8.11 JavaScript 垃圾回收机制... 196
8.11.1 可访问性(Reachability)... 196
8.11.2 一个简单示例... 196
8.11.3 两个引用... 197
8.11.4 相互引用的对象... 197
8.11.5 孤岛(Unreachable island) 199
8.11.6 内部算法... 200
第 9 章... 203
◄ 正则表达式 ►. 203
9.1 正则表达式简介... 203
9.1.1 什么是正则表达式... 203
9.1.2 正则表达式的作用... 203
9.1.3 正则表达式的特点... 203
9.1.4 正则表达式的组成... 204
9.1.5 常用案例... 205
9.1.6 如何验证正则表达式的正确性... 206
9.1 JavaScript 中使用正则表达式... 206
9.1.1 创建正则对象... 206
9.1.2 正则匹配... 207
9.1.3 正则提取... 207
9.1.4 正则替换... 209
9.3 正则表达式使用案例... 210
9.3.1 密码强度验证... 210
9.3.2 表单验证... 214
第 10 章... 217
◄ 贪吃蛇案例 ►. 217
10.1 示例介绍... 217
10.2 实现步骤... 219
10.2.1 画地图和操作按钮... 219
10.2.2 封装食物对象... 220
10.2.3 封装小蛇对象... 222
10.2.4 封装游戏对象... 224
10.2.5 游戏调用... 227
第 4 部分... 228
◄ Javascript下一代标准 ►. 228
第 11 章... 229
◄ ES6~ES10新特性介绍 ►. 229
11.1 ES6新特性... 229
11.1.1 Arrows(箭头函数)... 229
11.1.2 const和let 230
11.1.3 模板字符串... 230
11.1.4 函数的参数默认值... 230
11.1.5 延展操作符(Spread operator) 231
11.1.6 对象解构... 231
11.1.7 for...of 和 for...in. 231
11.1.8 对象属性简写... 232
11.1.9 Promise. 232
11.1.10 class(类)... 235
11.1.11 Module (模块化) 236
11.2 ES7新特性... 238
11.2.1 Array.prototype.includes() 238
11.2.2 指数操作符**. 238
11.3 ES8新特性... 238
11.3.1 async await 239
11.3.2 Object.values/Object.entries. 241
11.3.3 padStart 和 padEnd. 241
11.4 ES9新特性... 242
11.4.1 for await...of. 242
11.4.2 Object Rest Spread. 243
11.4.3 Promise.prototype.finally() 245
11.4.4 新的正则表达式特性... 246
11.5 ES10新特性... 248
11.5.1 Array.prototype.flat() 248
11.5.2 Array.prototype.flatMap() 249
11.5.3 String.trimStart 和 String.trimEnd. 249
11.5.4 String.prototype.matchAll. 249
11.5.5 修改 catch 绑定... 250
11.5.6 新的基本数据类型 BigInt. 250
11.5.7 Object.fromEntries(). 250
11.5.8 Symbol.prototype.description. 251
11.5.9 Function.prototype.toString() 251
第 12 章... 252
◄ TypeScript简单介绍 ►. 252
12.1 TypeScript简介... 252
12.1.1 安装TypeScript 252
12.1.2 开始我们的第一个TypeScript程序... 253
12.1.3 类型注解... 255
12.1.4 接口... 255
12.1.5 类... 256
12.2 TypeScript基础类型... 257
12.2.1 元组 Tuple. 257
12.2.2 枚举... 257
12.2.3 任意值any. 258
12.2.4 空值... 259
12.2.5 Null 和 Undefined. 259
12.2.6 Never 259
12.2.7 类型断言... 259
参考文献... 261
《Javscript实用教程》目录的更多相关文章
- 《Spring Boot 入门及前后端分离项目实践》系列介绍
课程计划 课程地址点这里 本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发 ...
- 《Spring Boot 入门及前后端分离项目实践》目录
开篇词:SpringBoot入门及前后端分离项目实践导读 第02课:快速认识 Spring Boot 技术栈 第03课:开发环境搭建 第04课:快速构建 Spring Boot 应用 第05课:Spr ...
- 基于Vue的前后端分离项目实践
一.为什么需要前后端分离 1.1什么是前后端分离 前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目.怎么理解前后端分离?直观的感觉就是前后端分开去做,即功 ...
- 实战!spring Boot security+JWT 前后端分离架构认证登录!
大家好,我是不才陈某~ 认证.授权是实战项目中必不可少的部分,而Spring Security则将作为首选安全组件,因此陈某新开了 <Spring Security 进阶> 这个专栏,写一 ...
- 基于Spring Boot架构的前后端完全分离项目API路径问题
最近的一个项目采用前后端完全分离的架构,前端组件:vue + vue-router + vuex + element-ui + axios,后端组件:Spring Boot + MyBatis.之所以 ...
- 喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了
折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...
- 两个开源的 Spring Boot + Vue 前后端分离项目
折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...
- 七个开源的 Spring Boot 前后端分离项目,一定要收藏!
前后端分离已经在慢慢走进各公司的技术栈,根据松哥了解到的消息,不少公司都已经切换到这个技术栈上面了.即使贵司目前没有切换到这个技术栈上面,松哥也非常建议大家学习一下前后端分离开发,以免在公司干了两三年 ...
- 八个开源的 Spring Boot 前后端分离项目,一定要收藏!
八个开源的 Spring Boot 前后端分离项目 最近前后端分离已经在慢慢走进各公司的技术栈,不少公司都已经切换到这个技术栈上面了.即使贵司目前没有切换到这个技术栈上面,我们也非常建议大家学习一下前 ...
- 如何使用Spring Securiry实现前后端分离项目的登录功能
如果不是前后端分离项目,使用SpringSecurity做登录功能会很省心,只要简单的几项配置,便可以轻松完成登录成功失败的处理,当访问需要认证的页面时,可以自动重定向到登录页面.但是前后端分离的项目 ...
随机推荐
- [FAQ] Edge/Chrome 网络请求的编辑并重发
1. 在网络请求上面右键,复制为fetch. 2. 切换到Console控制台,粘贴并回车. fetch 是javascript中一个网络请求的函数或者工具,Chrome在我们 Copy as fet ...
- SAP Adobe Form 教程一 简单示例
马上需要用到adobe form,这里搬运一篇教程学习下. 英文原文:SAP Adobe Interactive Form Tutorial. Part I. First Adobe Form 本文链 ...
- HEOI2024省选游记
day 0 上午 没让不跑操的同学帮忙带着包 所以就直接背着跑的操,相当难受 吃完早饭就拿手机来机房了 不得不说看得出来 huge 这届确实打算换一种教学思路 以来就先强调了一堆意料之外的东西 包括但 ...
- 我的 Kafka 旅程 - 概念 · 特点 · 组成 · 模式 · 应用
系列目录 我的 Kafka 旅程 - 概念 · 特点 · 组成 · 模式 · 应用 我的 Kafka 旅程 - Linux下的安装 · 基础命令 · 集群 我的 Kafka 旅程 - Producer ...
- 深度Linux deepin更新,防火墙操作
获取更新 sudo apt-get update 更新系统 sudo apt-get dist-upgrade -y 清理更新缓存 sudo apt-get autoclean 防火墙操作 sudo ...
- Pr 的导出视频
导出视频 https://www.bilibili.com/video/BV1Vt411n7Bb?p=7
- 十三、.net core(.NET 6)搭建ElasticSearch(ES)系列之dotnet操作ElasticSearch进行存取的方法
.net core操作ES进行读写数据操作 在Package包项目下,新增NEST包.注意,包版本需要和使用的ES的版本保持一致,可以避免因为不兼容所导致的一些问题.例如我本机使用的ES版本是7.13 ...
- Java 工程文件的 .gitignore
以下是一个排查 Java 工程文件的 .gitignore 文件示例: # Java 编译器生成的文件 *.class # Maven 生成的文件夹 target/ # Eclipse 生成的文件夹 ...
- AIRIOT答疑第1期 | 零开发基础也能干物联网平台项目?
当然可以! 物联网低代码平台以零门槛.部署快.灵活性高.满足二次开发等特点,成为近两年来IOT服务的生力军.项目团队即使没有研发人员,也可以像拼乐高一样快速搭建物联网平台,功能全面,满足多数业务场景下 ...
- MindSponge分子动力学模拟——体系控制(2024.05)
技术背景 在传统的分子动力学模拟软件中,对于分子体系的控制,例如控制体系的相对位置亦或是绝对位置,通常都是通过施加一些约束算法来实现的.例如用于限制化学键的LINCS算法,又比如水分子体系非常常用的S ...