《Javscript实用教程》

图书购买地址:《Javscript实用教程》

目录

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet.Applet 简单实现!~ 网页表格组件 GWT Advanced Table GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的定义 4. 使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端 JOpenID JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值