图书介绍

JavaScript网页编程从入门到精通pdf电子书版本下载

JavaScript网页编程从入门到精通
  • 杨凡编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302421924
  • 出版时间:2017
  • 标注页数:956页
  • 文件大小:368MB
  • 文件页数:974页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

JavaScript网页编程从入门到精通PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 JavaScript概述 1

1.1 JavaScript发展历史 2

1.1.1 第一个网页脚本语言 2

1.1.2 Netscape发明了JavaScript 2

1.1.3 三足鼎立 2

1.1.4 ECMAScript诞生 3

1.2 JavaScript版本 3

1.3 ECMAScript概述 4

1.3.1 ECMAScript和JavaScript的关系 4

1.3.2 ECMAScript发展历史 4

1.4 JavaScript实现 5

1.4.1 JavaScript核心 5

1.4.2 文档对象模型 6

1.4.3 浏览器对象模型 7

1.5 JavaScript开发工具 8

1.5.1 JavaScript编辑器 8

1.5.2 JavaScript测试和调试 8

第2章 在网页中使用JavaScript 11

2.1 使用<script>标签 12

2.1.1 编写第一个JavaScript程序 12

2.1.2 脚本位置 15

2.1.3 延迟执行脚本 16

2.1.4 异步响应脚本 16

2.1.5 在XHTML中使用JavaScript脚本 17

2.1.6 兼容不支持JavaScript的浏览器 19

2.2 比较嵌入代码与链接脚本 19

2.3 使用<noscript>标签 19

2.4 JavaScript执行顺序 20

2.4.1 正常执行顺序 20

2.4.2 预编译提前 21

2.4.3 代码块的执行顺序 22

2.4.4 事件响应顺序 23

2.4.5 动态输出脚本字符串 24

2.5 浏览器与JavaScript 25

2.5.1 浏览器内核 25

2.5.2 浏览器错误报告 25

2.6 JavaScript错误处理 29

2.6.1 使用try-catch 29

2.6.2 使用finally 30

2.6.3 错误类型 30

2.6.4 抛出错误 32

2.6.5 案例:设计抛出错误时机 33

2.6.6 错误事件 34

2.6.7 错误类型 35

2.6.8 案例:记录错误 36

2.7 JavaScript代码调试 37

2.7.1 使用控制台 37

2.7.2 显示错误信息 38

2.7.3 抛出错误 40

2.7.4 IE错误 40

第3章 JavaScript基本语法 44

3.1 词法基础 45

3.1.1 字符编码 45

3.1.2 大小写敏感 46

3.1.3 标识符 47

3.1.4 直接量 47

3.1.5 关键字和保留字 47

3.1.6 分隔符 48

3.1.7 注释 50

3.1.8 转义序列 51

3.2 句法基础 51

3.2.1 认识词、句和段 51

3.2.2 分号 53

3.2.3 大括号 54

第4章 数据、类型和变量 56

4.1 JavaScript数据类型概述 57

4.1.1 JavaScript数据类型的特点 57

4.1.2 JavaScript的基本数据类型 57

4.1.3 值类型和引用类型 58

4.2 值类型数据 60

4.2.1 数值 60

4.2.2 字符串 63

4.2.3 布尔值 65

4.2.4 Null 65

4.2.5 Undefined 66

4.3 引用型数据 67

4.3.1 数组 67

4.3.2 对象 69

4.3.3 函数 71

4.4 数据类型检测 74

4.4.1 使用typeof 74

4.4.2 使用constructor 74

4.4.3 案例:在框架窗口检测数组类型 75

4.4.4 案例:设计完善的数据类型检测工具 76

4.5 数据类型转换 78

4.5.1 值类型转换 78

4.5.2 引用型转换 79

4.5.3 转换为字符串 81

4.5.4 案例:转换数字模式 83

4.5.5 案例:设置数字转换为字符串的小数位数 83

4.5.6 转换为数字 84

4.5.7 转换为布尔值 86

4.5.8 案例:装箱和拆箱 87

4.5.9 案例:强制转换 88

4.6 使用变量 89

4.6.1 声明变量 89

4.6.2 变量的作用域 91

4.6.3 变量的作用域链 94

4.6.4 变量回收 95

4.6.5 案例:变量污染 95

4.7 案例实战 96

4.7.1 代码题 96

4.7.2 编程题 100

第5章 运算符和表达式 102

5.1 运算符和表达式概述 103

5.1.1 认识运算符 103

5.1.2 使用运算符 106

5.1.3 认识表达式 107

5.1.4 案例:优化表达式 107

5.2 位运算符 109

5.2.1 位运算概述 109

5.2.2 逻辑位运算 111

5.2.3 移位运算 113

5.3 算术运算符 114

5.3.1 加法运算 114

5.3.2 减法运算 115

5.3.3 乘法运算 116

5.3.4 除法运算 116

5.3.5 余数运算 116

5.3.6 取反运算 117

5.3.7 递增和递减 117

5.4 逻辑运算符 118

5.4.1 逻辑与运算符 118

5.4.2 逻辑或运算符 120

5.4.3 逻辑非运算符 121

5.4.4 案例:逻辑运算训练 121

5.5 关系运算符 123

5.5.1 大小比较 123

5.5.2 案例:包含检测 124

5.5.3 案例:等值检测 124

5.6 赋值运算符 126

5.7 对象操作运算符 128

5.7.1 new运算符 128

5.7.2 delete运算符 129

5.7.3 中括号和点号运算符 130

5.7.4 小括号运算符 133

5.8 其他运算符 133

5.8.1 条件运算符 133

5.8.2 逗号运算符 134

5.8.3 void运算符 135

5.8.4 typeof运算符 136

5.9 案例实战 136

5.9.1 表达式计算 137

5.9.2 表达式描述 138

5.9.3 编程题 138

第6章 语句和结构 139

6.1 语句概述 140

6.2 简单语句 142

6.2.1 表达式语句 142

6.2.2 复合语句 143

6.2.3 声明语句 144

6.2.4 空语句 145

6.3 分支结构 146

6.3.1 if语句 146

6.3.2 条件嵌套 147

6.3.3 案例:优化条件结构 148

6.3.4 案例:条件误用 149

6.3.5 switch语句 150

6.3.6 default从句 152

6.3.7 案例:比较if和switch 154

6.3.8 案例:优化分支结构 155

6.4 循环结构 157

6.4.1 while语句 157

6.4.2 do/while语句 158

6.4.3 for语句 159

6.4.4 for/in语句 160

6.4.5 案例:使用for/in 161

6.4.6 案例:比较while和for 163

6.4.7 案例:优化循环结构 165

6.5 结构跳转 167

6.5.1 标签语句 167

6.5.2 break语句 167

6.5.3 continue语句 170

6.6 异常处理 171

6.6.1 异常概述 171

6.6.2 throw语句 172

6.6.3 try/catch/finally语句 172

6.6.4 案例:改变作用域链 174

6.7 函数结构 175

6.7.1 function语句 175

6.7.2 return语句 176

6.8 with语句 177

6.9 案例实战 178

6.9.1 编程题 178

6.9.2 提升条件检测性能 179

6.9.3 提升循环迭代性能 180

6.9.4 设计杨辉三角 182

第7章 操作字符串 185

7.1 定义字符串 186

7.1.1 字符串直接量 186

7.1.2 构造字符串 186

7.1.3 使用字符编码 187

7.2 使用字符串 188

7.2.1 案例:计算字符串长度 188

7.2.2 案例:连接字符串 190

7.2.3 案例:查找字符串 190

7.2.4 案例:截取子字符串 193

7.2.5 案例:编辑字符串 195

7.2.6 案例:灵活使用replace()方法 197

7.2.7 案例:比较字符串 199

7.2.8 案例:把字符串转换为数组 199

7.2.9 案例:字符串的类型和值 200

7.2.10 案例:格式化字符串 201

7.3 案例实战 202

7.3.1 修剪字符串 202

7.3.2 检测特殊字符 204

7.3.3 优化字符串连接 205

7.4 加密和解密 206

7.4.1 JavaScript编码和解码 206

7.4.2 案例:Unicode编码 208

7.4.3 案例:Unicode解码 209

7.4.4 综合实战:自定义加密和解密方法 210

第8章 使用正则表达式 212

8.1 认识正则表达式 213

8.2 定义正则表达式 213

8.2.1 构造正则表达式 213

8.2.2 正则表达式直接量 215

8.3 字符匹配 216

8.3.1 认识普通字符和元字符 216

8.3.2 字符直接量 216

8.3.3 简单字符类 217

8.3.4 反义字符类 218

8.3.5 字符范围类 219

8.3.6 预定义字符类 220

8.4 重复匹配 220

8.4.1 简单重复性匹配 221

8.4.2 贪婪匹配 222

8.4.3 惰性匹配 224

8.4.4 支配匹配 225

8.5 高级匹配 225

8.5.1 分组 225

8.5.2 案例:分组应用 227

8.5.3 引用 228

8.5.4 案例:非引用型分组 229

8.5.5 选择 229

8.5.6 声明 231

8.5.7 边界 232

8.5.8 锚记 233

8.5.9 标志 233

8.6 使用RegExp对象 234

8.6.1 实例属性 234

8.6.2 静态属性 235

8.6.3 案例应用 237

8.7 综合案例:设计表单验证 239

第9章 操作数组 245

9.1 定义数组 246

9.1.1 构造数组 246

9.1.2 数组直接量 246

9.2 使用数组 247

9.2.1 存取数组元素 247

9.2.2 数组长度 248

9.2.3 案例:比较对象与数组 249

9.2.4 案例:定义多维数组 251

9.3 数组的应用 252

9.3.1 案例:检索数组 252

9.3.2 案例:添删元素 253

9.3.3 案例:操作子数组 255

9.3.4 案例:数组排序 257

9.3.5 案例:使用数组排序函数 258

9.3.6 案例:数组与字符串转换 260

9.4 案例实战 261

9.4.1 快速交换 261

9.4.2 数组下标 262

9.4.3 扩展数组方法 263

9.4.4 设计迭代器 265

9.4.5 使用迭代器 266

9.4.6 使用数组维度 268

9.5 综合实践:排序算法设计 269

9.5.1 插入排序 269

9.5.2 二分插入排序 270

9.5.3 选择排序 270

9.5.4 冒泡排序 271

9.5.5 快速排序 272

9.5.6 计数排序 272

第10章 使用对象 274

10.1 认识对象 275

10.2 对象分类 275

10.2.1 原生对象 275

10.2.2 宿主对象 276

10.3 对象基本操作 276

10.3.1 创建对象 276

10.3.2 引用对象 277

10.3.3 销毁对象 277

10.4 属性基本操作 278

10.4.1 定义属性 278

10.4.2 访问属性 279

10.4.3 赋值和删除属性 279

10.4.4 对象方法 280

10.5 原生对象类型 282

10.5.1 构造对象 282

10.5.2 实例对象 283

10.5.3 原型对象 284

10.6 使用构造器 287

10.7 使用对象基本方法 288

10.7.1 案例:重写toString 289

10.7.2 案例:重写valueOf 290

10.7.3 案例:检测私有属性 291

10.7.4 案例:检测枚举属性 292

10.7.5 案例:检测原型对象 293

10.8 使用原生对象 294

10.8.1 Global对象 294

10.8.2 Math对象 294

10.8.3 Date对象 296

10.9 综合案例:设计计算器 298

第11章 使用函数 302

11.1 认识函数 303

11.1.1 函数是代码块 303

11.1.2 函数是数据 303

11.1.3 函数是对象 304

11.2 定义函数 304

11.2.1 构造函数 305

11.2.2 函数直接量 306

11.2.3 定义嵌套函数 307

11.3 案例:优化函数定义 307

11.3.1 函数作用域 308

11.3.2 解析机制 309

11.3.3 兼容性和灵活性 309

11.4 使用函数 310

11.4.1 函数返回值 310

11.4.2 调用函数 311

11.4.3 函数生命周期 312

11.4.4 函数作用域 313

11.5 使用参数 314

11.5.1 认识形参和实参 314

11.5.2 使用Arguments对象 315

11.5.3 使用callee回调函数 316

11.5.4 案例实战 317

11.6 使用Function对象 318

11.6.1 获取函数形参个数 318

11.6.2 自定义属性 318

11.6.3 案例:使用call()和apply() 320

11.7 函数解析机制 323

11.7.1 词法作用域与执行作用域 323

11.7.2 执行上下文和作用域链 325

11.7.3 调用对象 327

11.8 函数中的this 328

11.8.1 案例:认识this 328

11.8.2 案例:使用this 333

11.8.3 案例:this安全策略 337

11.8.4 案例:this应用 339

11.9 案例实战 342

11.9.1 函数调用模式 342

11.9.2 扩展函数方法 344

11.9.3 绑定函数 345

11.9.4 链式语法 346

11.9.5 函数节流 347

11.9.6 使用Arguments模拟重载 348

第12章 函数式编程 350

12.1 函数式编程概述 351

12.1.1 函数是第一型 351

12.1.2 函数是运算元 352

12.1.3 函数是数据闭包 352

12.2 表达式运算 353

12.2.1 连续运算 353

12.2.2 把命令转换为表达式 355

12.2.3 表达式中的函数 356

12.3 递归运算 358

12.3.1 认识递归 358

12.3.2 案例:Hanoi(汉诺)塔算法 359

12.3.3 案例:尾递归算法 361

12.3.4 案例:Fibonacci(斐波那契)数列 363

12.3.5 递归算法的优化 364

12.4 闭包函数 366

12.4.1 认识闭包函数 366

12.4.2 使用闭包 367

12.4.3 闭包标识系统 370

12.4.4 闭包作用域和生命周期 371

12.4.5 案例:比较函数调用和引用 374

12.4.6 案例:比较闭包函数和函数实例 376

12.4.7 案例:比较闭包函数和调用对象 380

12.4.8 案例:保护闭包数据的独立性 381

12.4.9 案例:定义构造函数闭包 383

12.4.10 案例:闭包存储器 384

12.4.11 案例:事件处理中闭包应用 386

12.4.12 综合案例:设计折叠面板 389

12.4.13 案例:在循环体和异步回调中慎重使用闭包 391

12.5 案例实战 393

12.5.1 惰性求值 393

12.5.2 记忆 394

12.5.3 套用 396

12.5.4 模块化 397

12.5.5 柯里化 399

12.5.6 高阶函数 400

第13章 面向对象编程 402

13.1 认识类 403

13.2 定义类 404

13.2.1 案例:工厂模式 404

13.2.2 案例:构造函数模式 405

13.2.3 案例:原型模式 406

13.2.4 案例:构造函数原型模式 407

13.2.5 案例:动态原型模式 408

13.3 接口 409

13.3.1 认识接口 409

13.3.2 定义接口 410

13.3.3 使用建议 412

13.4 原型模型 413

13.4.1 认识prototype 413

13.4.2 定义原型 414

13.4.3 案例:原型属性和本地属性 416

13.4.4 案例:应用原型 418

13.4.5 认识原型域和原型域链 421

13.4.6 原型副作用 423

13.5 继承 423

13.5.1 认识JavaScript继承机制 424

13.5.2 原型继承 425

13.5.3 类继承 426

13.5.4 案例:封装类继承模式 430

13.5.5 实例继承 431

13.5.6 复制继承 432

13.5.7 克隆继承 433

13.5.8 混合继承 434

13.5.9 多重继承 435

13.5.10 掺元类 436

13.6 封装 438

13.6.1 被动封装 438

13.6.2 主动封装 440

13.6.3 静态方法 442

13.7 多态 444

13.7.1 案例:方法重载和覆盖 444

13.7.2 案例:类的多态 447

13.8 构造和析构 448

13.8.1 案例:构造函数 448

13.8.2 案例:析构函数 450

13.9 案例实战 450

13.9.1 惰性实例化 451

13.9.2 安全构造对象 452

13.9.3 设计超类和子类 454

13.9.4 设计元类 455

13.9.5 分支函数 457

13.9.6 惰性载入函数 458

第14章 BOM 461

14.1 认识BOM 462

14.2 使用Window对象 463

14.2.1 全局作用域 464

14.2.2 Window对象生命周期 464

14.2.3 人机交互接口 464

14.2.4 案例:控制弹出窗口 466

14.2.5 案例:框架集通信 467

14.3 使用Navigator对象 469

14.3.1 了解浏览器检测方法 469

14.3.2 案例:检测浏览器类型和版本 470

14.3.3 案例:检测客户端操作系统 471

14.4 使用Location和History对象 472

14.4.1 案例:使用Location对象 472

14.4.2 使用History对象 474

14.5 使用Screen对象 475

14.5.1 案例:使用Screen对象控制窗口大小 475

14.5.2 案例:使用Window对象控制窗口大小 475

14.6 使用Document对象 476

14.6.1 认识Document 476

14.6.2 使用0级文档模型操作文档 477

14.6.3 案例:动态生成文档 479

第15章 DOM 481

15.1 认识DOM 482

15.2 使用节点 484

15.2.1 节点类型 484

15.2.2 节点名称和值 486

15.2.3 节点关系 487

15.2.4 案例:访问节点 488

15.2.5 案例:操作节点 491

15.3 使用文档节点 493

15.3.1 访问文档子节点 493

15.3.2 访问文档信息 493

15.3.3 访问文档元素 494

15.3.4 使用HTML5 Document 494

15.4 使用元素节点 495

15.4.1 访问元素 496

15.4.2 案例:遍历元素 497

15.4.3 创建元素 499

15.4.4 案例:复制节点 500

15.4.5 案例:插入节点 501

15.4.6 案例:删除节点 503

15.4.7 案例:替换节点 504

15.5 使用文本节点 505

15.5.1 访问文本节点 506

15.5.2 创建文本节点 507

15.5.3 操作文本节点 507

15.5.4 读取HTML字符串 508

15.5.5 案例:插入HTML字符串 508

15.5.6 案例:替换HTML字符串 510

15.5.7 案例:插入文本 511

15.6 使用文档片段节点 513

15.7 使用属性节点 514

15.7.1 访问属性节点 514

15.7.2 案例:读取属性值 516

15.7.3 案例:设置属性值 517

15.7.4 案例:删除属性 518

15.7.5 案例:使用类选择器 519

15.7.6 自定义属性 520

15.8 使用范围 521

15.8.1 创建范围 521

15.8.2 案例:选择范围 522

15.8.3 案例:设置范围 525

15.8.4 案例:操作范围内容 527

15.8.5 案例:插入范围内容 530

15.9 使用CSS选择器 531

第16章 事件处理 533

16.1 事件概述 534

16.1.1 事件模型分类 534

16.1.2 事件流 534

16.1.3 事件类型 537

16.2 基本事件模型 538

16.2.1 基本事件类型 538

16.2.2 绑定事件 539

16.2.3 事件处理函数的返回值 540

16.2.4 事件处理函数的参数 540

16.2.5 事件处理函数中的this 541

16.3 标准事件模型 542

16.3.1 事件传播 542

16.3.2 注册事件 543

16.3.3 注销事件 544

16.3.4 事件类型 545

16.3.5 Event对象 546

16.4 IE事件模型 547

16.4.1 注册和销毁事件 547

16.4.2 Event对象 550

16.5 鼠标事件开发 551

16.5.1 鼠标点击 551

16.5.2 案例:鼠标移动 552

16.5.3 案例:鼠标经过 553

16.5.4 案例:鼠标来源 554

16.5.5 案例:鼠标定位 555

16.5.6 鼠标按键 558

16.6 键盘事件开发 558

16.6.1 认识键盘事件的属性 559

16.6.2 键盘事件响应顺序 561

16.7 页面事件开发 562

16.7.1 页面初始化 562

16.7.2 结构初始化 564

16.7.3 页面卸载 566

16.7.4 窗口重置 566

16.7.5 页面滚动 567

16.7.6 错误处理 568

16.8 UI事件开发 568

16.9 表单事件开发 569

16.9.1 选择文本 569

16.9.2 监测值变化 569

16.9.3 提交表单 570

16.9.4 重置表单 571

16.10 案例实战:自定义事件 572

16.10.1 设计弹出对话框 572

16.10.2 设计遮罩层 573

16.10.3 定义事件雏形 575

16.10.4 设计事件触发模型 575

16.10.5 应用事件模型 577

第17章 脚本化CSS 581

17.1 脚本化CSS概述 582

17.1.1 认识CSS脚本属性 582

17.1.2 CSS样式模型概述 586

17.2 操作行内样式 588

17.2.1 CSS脚本属性名规范 588

17.2.2 使用style对象 589

17.3 操作样式表 595

17.3.1 使用styleSheets对象 595

17.3.2 访问样式表中的样式 596

17.3.3 读取样式的选择符 598

17.3.4 编辑样式 599

17.3.5 添加样式 600

17.3.6 访问显示样式 601

17.4 控制大小 604

17.4.1 案例:从样式表中读取宽度和高度 604

17.4.2 案例:把样式属性值转换为实际值 606

17.4.3 案例:使用offsetWidth和offsetHeight 607

17.4.4 案例:复杂环境下的元素尺寸 610

17.4.5 案例:可视区域尺寸 612

17.4.6 案例:浏览器窗口尺寸 613

17.5 位移和定位 614

17.5.1 案例:获取窗口位置 614

17.5.2 案例:获取相对包含框的位置 617

17.5.3 案例:获取定位包含框的位置 617

17.5.4 案例:设置元素的偏移位置 618

17.5.5 案例:设置元素的相对位置 618

17.5.6 案例:获取鼠标指针的页面位置 619

17.5.7 案例:获取鼠标指针在元素内的位置 620

17.5.8 案例:获取页面滚动条的位置 622

17.5.9 案例:设置页面滚动条的位置 622

17.6 显示和隐藏 623

17.6.1 案例:可见性 623

17.6.2 案例:透明度 624

17.7 设计动画 625

17.7.1 定时器 625

17.7.2 案例:滑动 628

17.7.3 案例:渐隐渐显 629

第18章 HTML5动画设计 630

18.1 HTML5 canvas概述 631

18.1.1 在页面中添加canvas元素 631

18.1.2 Canvas如何绘制图形 632

18.1.3 认识Canvas坐标 633

18.1.4 何时不用Canvas 633

18.1.5 如果浏览器不支持Canvas 633

18.1.6 检测浏览器支持 633

18.2 绘制基本图形 634

18.2.1 绘制直线 634

18.2.2 绘制矩形 635

18.2.3 绘制圆形 636

18.2.4 绘制三角形 638

18.2.5 清空画布 639

18.3 绘制曲线 640

18.3.1 绘制二次方贝塞尔曲线 640

18.3.2 绘制三次方贝塞尔曲线 641

18.4 变换图形 642

18.4.1 保存与恢复Canvas状态 642

18.4.2 移动坐标空间 643

18.4.3 旋转坐标空间 645

18.4.4 缩放图形 647

18.4.5 矩阵变换 648

18.5 组合和裁切图形 651

18.5.1 组合图形 651

18.5.2 裁切路径 653

18.6 定义颜色和样式 654

18.6.1 应用线型 654

18.6.2 绘制线性渐变 658

18.6.3 绘制径向渐变 659

18.6.4 绘制图案 660

18.6.5 设置图形的透明度 661

18.6.6 创建阴影 663

18.7 绘制文字 664

18.7.1 绘制填充文字 664

18.7.2 设置文字属性 665

18.7.3 绘制轮廓文字 665

18.7.4 测量文字宽度 666

18.8 嵌入图像 667

18.8.1 向Canvas中引入图像 667

18.8.2 改变图像大小 669

18.8.3 创建图像切片 670

第19章 Web存储 672

19.1 Cookie概述 673

19.1.1 认识Cookie 673

19.1.2 Cookie字符串 673

19.2 存取Cookie 674

19.2.1 写入Cookie 674

19.2.2 设置Cookie有效期 674

19.2.3 设置Cookie的域和路径 675

19.2.4 设置Cookie安全传输 676

19.2.5 案例:完善写入Cookie方法 676

19.2.6 读取Cookie信息 677

19.2.7 修改和删除Cookie信息 678

19.2.8 Cookie的局限性及其突破 678

19.3 综合案例:Cookie应用 680

19.3.1 封装Cookie 680

19.3.2 打字游戏 682

19.4 Web Storage概述 684

19.4.1 Cookie存储机制的优缺点 684

19.4.2 为什么要用Web Storage 684

19.4.3 Web Storage的优势和缺点 685

19.4.4 浏览器支持概述 685

19.5 使用Web Storage 686

19.5.1 检查浏览器的支持性 686

19.5.2 设置和获取数据 688

19.5.3 防止数据泄露 689

19.5.4 Web Storage其他用法 689

19.5.5 Web Storage事件监测 690

19.5.6 案例1:设计网页皮肤 691

19.5.7 案例2:跟踪localStorage数据 692

19.5.8 案例3:设计计数器 694

19.5.9 综合案例:Web应用项目实时跟踪 694

19.6 Web SQL数据库 699

19.6.1 Web SQL数据库概述 700

19.6.2 使用Web SQL数据库 700

19.6.3 实例1:创建简单的本地数据库 702

19.6.4 实例2:批量存储本地数据 705

19.6.5 综合案例:Web Storage和Web SQL混合开发 706

第20章 JavaScript通信 714

20.1 HTTP概述 715

20.2 使用隐藏框架 717

20.2.1 认识隐藏框架 718

20.2.2 案例:使用隐藏框架设计异步交互 719

20.2.3 使用iframe 722

20.3 使用JSONP 724

20.3.1 认识<script>标签 724

20.3.2 案例:脚本化script元素 725

20.3.3 案例:传递参数 726

20.3.4 案例:设计响应类型 730

20.4 使用Ajax 735

20.4.1 认识XMLHttpRequest 735

20.4.2 定义XMLHttpRequest对象 736

20.4.3 建立XMLHttpRequest连接 738

20.5 发送请求 739

20.5.1 发送GET请求 739

20.5.2 发送POST请求 740

20.5.3 案例:把数据转换为串行字符串 741

20.6 异步监测 742

20.6.1 跟踪状态 742

20.6.2 中止请求 744

20.7 获取响应 744

20.7.1 XML 745

20.7.2 HTML 746

20.7.3 JavaScript 746

20.7.4 JSON 747

20.7.5 Text 748

20.7.6 获取头部消息 748

20.8 案例实战 749

20.8.1 封装异步交互 749

20.8.2 设计动态响应的Tab面板 750

20.8.3 使用灯标 754

第21章 XML 755

21.1 XML概述 756

21.2 XML文档对象模型 757

21.2.1 认识XML DOM 757

21.2.2 读取XML 759

21.3 在IE中操作XML 760

21.3.1 创建XML DOM对象 760

21.3.2 加载XML数据 761

21.3.3 错误处理 762

21.4 使用DOM2操作XML 763

21.4.1 创建XML DOM对象 763

21.4.2 加载XML数据 764

21.4.3 读取XML数据 764

21.5 使用XPath 766

21.5.1 熟悉XPath基本语法 766

21.5.2 IE中的XPath 768

21.5.3 DOM 3中的XPath 768

21.6 案例实战 770

21.6.1 在网页中显示XML数据 770

21.6.2 异步加载XML数据 772

第22章 JSON 775

22.1 JSON概述 776

22.2 比较JSON与XML 776

22.3 JSON语法 778

22.3.1 简单值 779

22.3.2 对象 780

22.3.3 数组 781

22.4 JSON解析和序列化 781

22.5 案例:优化JSON数据 781

第23章 ECMAScript 5 785

23.1 ECMAScript 5概述 786

23.2 浏览器支持 787

23.3 严格模式 788

23.3.1 启用严格模式 788

23.3.2 严格模式的执行限制 790

23.4 JSON 795

23.4.1 案例:解析JSON 795

23.4.2 案例:序列化JSON 796

23.5 Object 798

23.5.1 创建对象 798

23.5.2 定义属性 800

23.5.3 访问属性 802

23.5.4 配置属性的特性 803

23.5.5 检测属性的特性 804

23.6 Array 804

23.6.1 定位 805

23.6.2 迭代 805

23.6.3 汇总 813

23.7 Function和String 815

第24章 ECMAScript 6 817

24.1 ECMAScript 6概述 818

24.1.1 兼容性 818

24.1.2 使用ECMAScript 6 818

24.2 变量 818

24.2.1 let命令 819

24.2.2 const命令 820

24.2.3 数组解构赋值 820

24.2.4 对象解构赋值 821

24.2.5 案例:解构应用 822

24.3 字符和字符串 823

24.3.1 字符 824

24.3.2 字符串 825

24.3.3 模板字符串 827

24.4 数值 827

24.4.1 进制表示 827

24.4.2 Number方法 827

24.4.3 Math方法 828

24.5 数组 829

24.5.1 转换 829

24.5.2 实例 830

24.5.3 推导 831

24.5.4 监听 832

24.6 对象 832

24.6.1 新增方法 832

24.6.2 原型方法 833

24.6.3 增强语法 833

24.6.4 属性名表达式 834

24.6.5 符号数据 834

24.6.6 代理防护层 836

24.6.7 监听 837

24.7 函数 838

24.7.1 默认值 838

24.7.2 rest参数 840

24.7.3 扩展运算符 840

24.7.4 箭头函数 841

24.8 数据结构 842

24.8.1 Set 842

24.8.2 WeakSet 843

24.8.3 Map 844

24.8.4 WeakMap 846

24.9 循环遍历 846

24.9.1 遍历器 846

24.9.2 for/of循环 847

24.10 状态机 849

24.10.1 使用Generator函数 849

24.10.2 next()方法 851

24.10.3 异步操作 851

24.10.4 for of循环 853

24.10.5 throw方法 854

24.10.6 yield*语句 855

24.11 预处理 856

24.11.1 基本用法 856

24.11.2 then()方法 858

24.11.3 catch()方法 858

24.11.4 all()和race()方法 859

24.11.5 resolve()和reject()方法 859

24.11.6 asyrnc函数 860

24.12 类和模块 861

24.12.1 类 861

24.12.2 模块 862

第25章 移动定位 865

25.1 位置信息概述 866

25.1.1 为什么要学习Geolocation 866

25.1.2 位置信息表示方式 866

25.1.3 位置信息来源 866

25.1.4 IP定位 867

25.1.5 GPS定位 867

25.1.6 Wi-Fi定位 867

25.1.7 手机定位 868

25.1.8 自定义定位 868

25.2 使用Geolocation API 868

25.2.1 检查浏览器支持性 868

25.2.2 获取当前地理位置 869

25.2.3 监视位置信息 871

25.2.4 停止获取位置信息 871

25.2.5 隐私保护 871

25.2.6 处理位置信息 871

25.2.7 使用position对象 872

25.3 案例实战 873

25.3.1 使用Google地图 873

25.3.2 跟踪行走速度 875

第26章 多线程处理 881

26.1 Web Workers概述 882

26.1.1 认识Web Workers 882

26.1.2 浏览器支持概述 883

26.1.3 熟悉Web Workers成员 883

26.2 使用Web Workers 884

26.2.1 检查浏览器支持性 884

26.2.2 创建Web Workers 884

26.2.3 与Web Workers通信 885

26.2.4 案例:使用Web Workers 887

26.3 案例实战 890

26.3.1 使用多线程实现后台运算 890

26.3.2 在后台过滤值 891

26.3.3 多任务并发处理 893

26.3.4 在多线程之间通信 896

26.3.5 使用线程技术计算Fibonacci数列 898

26.3.6 使用多线程绘图 899

26.4 综合案例:模拟退火算法 903

26.4.1 认识模拟退火算法 903

26.4.2 编写应用主页面 904

26.4.3 编写Worker.is 906

26.4.4 与Web Worker通信 906

第27章 离线应用 910

27.1 HTML5离线应用概述 911

27.1.1 为什么要学习HTML5离线应用 911

27.1.2 浏览器支持概述 912

27.2 HTML5离线应用详解 913

27.2.1 解析manifest文件 913

27.2.2 搭建离线应用程序 916

27.2.3 检查浏览器是否支持 916

27.2.4 离线缓存更新实现 916

27.2.5 JavaScript接口实现 917

27.2.6 离线存储事件监听 919

27.3 案例实战:缓存首页 921

27.4 案例实战:离线编辑内容 924

27.5 案例实战:离线跟踪 928

第28章 案例开发 934

28.1 设计小程序:万年历 935

28.2 设计游戏:俄罗斯方块 942

28.2.1 设计游戏界面 942

28.2.2 设计游戏模型 944

28.2.3 实现游戏功能 946

精品推荐