精通JavaScript 第2版 pdf

精通JavaScript 第2版

内容简介

本书是iQuery之父的经典之作,是深入学习JavaScript技术的绝佳教材,涵盖了可重用代码、文档对象模型、Ajax、Web生产工具、AngularJS等内容。作者讲解了JavaScript的发展现状、实用技巧以及未来趋势,辅以诸多代码示例,条理清楚、分析到位。本书展示了更新颖、更巧妙、更有深度的JavaScript技术,同时理清了JavaScript的发展脉络,既能磨炼技能,又可开拓视野。

作者简介

John Resig,美国软件工程师,jQuery之父,骨灰级Web开发大师,毕业于罗切斯特理工学院,2007年加入Mozilla公司,现为可汗学院开发人员。

Russ Ferguson,杰出开发人员,曾为多家知名企业开发应用,并任教于普罗斯特艺术学院和帕森设计学院。

John Paxton,杰出开发人员,通晓多种开发语言,现专心研究Java和JavaScript

目录

第1章 专业JavaScript技术  1

1.1 JavaScript的历程  1

1.2 现代JavaScript  3

1.2.1 库的崛起  4

1.2.2 移动,可不只说说而已  5

1.2.3 何去何从  5

1.3 后续内容  6

1.4 小结  7

第2章 特性、函数和对象  8

2.1 语言特性  8

2.1.1 引用和值  8

2.1.2 作用域  10

2.1.3 上下文  12

2.1.4 闭包  13

2.1.5 函数重载与类型检查  16

2.2 新的对象工具  19

2.2.1 对象  19

2.2.2 修改对象  19

2.3 小结  22

第3章 创建可重用代码  23

3.1 面向对象的JavaScript  23

3.1.1 继承  27

3.1.2 成员可见性  31

3.1.3 面向对象JavaScript的未来  33

3.2 打包JavaScript  33

3.2.1 命名空间  33

3.2.2 模块模式  34

3.2.3 立即调用的函数表达式  36

3.3 小结  38

第4章 JavaScript代码调试  39

4.1 调试工具  39

4.1.1 控制台  40

4.1.2 利用控制台的特性  42

4.2 调试器  43

4.2.1 DOM探查器  44

4.2.2 网络分析器  44

4.2.3 时间线  45

4.2.4 侧写器  45

4.3 小结  47

第5章 文档对象模型  48

5.1 文档对象模型简介  48

5.1.1 DOM结构  50

5.1.2 DOM中的相互关系  51

5.2 访问DOM元素  53

5.3 等待HTML DOM载入  56

5.3.1 等待页面载入  56

5.3.2 等待正确的事件  56

5.4 获取元素内容  57

5.4.1 获取元素的文本内容  57

5.4.2 获取元素的HTML  59

5.5 使用元素特性  59

5.6 修改DOM  63

5.6.1 使用DOM创建节点  63

5.6.2 插入DOM  63

5.6.3 向DOM中插入HTML  64

5.6.4 从DOM中删除节点  66

5.6.5 处理DOM中的空白字符  67

5.6.6 简单的DOM导航  68

5.7 小结  70

第6章 事件  71

6.1 JavaScript事件简介  71

6.1.1 栈、队列和事件循环  71

6.1.2 事件阶段  72

6.2 绑定事件侦听器  73

6.2.1 传统式绑定  74

6.2.2 DOM绑定:W3C  77

6.2.3 解除事件绑定  78

6.3 常见的事件特性  79

6.3.1 事件对象  79

6.3.2 取消事件冒泡  80

6.3.3 屏蔽浏览器的默认行为  81

6.3.4 事件委托  82

6.4 事件对象  83

6.4.1 普通属性  83

6.4.2 鼠标属性  84

6.4.3 键盘属性  86

6.5 事件类型  86

6.5.1 页面事件  87

6.5.2 UI事件  88

6.5.3 鼠标事件  88

6.5.4 键盘事件  89

6.5.5 表单事件  90

6.5.6 事件可访问性  90

6.6 小结  91

第7章 JavaScript与表单验证  92

7.1 HTML与CSS表单验证  92

7.2 JavaScript表单验证  95

7.2.1 验证与用户  98

7.2.2 验证事件  99

7.3 定制验证  101

7.4 小结  102

第8章 Ajax入门  103

8.1 使用Ajax  104

8.1.1 HTTP请求  104

8.1.2 HTTP响应  109

8.2 小结  111

第9章 Web生产工具  112

9.1 为项目搭建脚手架  112

9.2 NPM必不可少  113

9.3 生成器  113

9.3.1 版本控制  115

9.3.2 添加文件、更新以及首次提交  116

9.4 小结  119

第10章 AngularJS与测试  120

10.1 视图与控制器  122

10.2 远程数据源  124

10.3 路由  126

10.4 路由参数  126

10.5 应用程序测试  128

10.5.1 单元测试  128

10.5.2 使用Protractor进行端到端测试  132

10.6 小结  134

第11章 JavaScript的未来  135

11.1 ECMAScript的过去和未来  135

11.2 使用ECMAScript Harmony  136

11.2.1 Harmony资源  136

11.2.2 使用Harmony  137

11.3 ECMAScript Harmony语言特性  141

11.3.1 箭头函数  142

11.3.2 类  143

11.3.3 Promise  144

11.3.4 模块  146

11.3.5 类型扩展  148

11.3.6 全新的聚合类型  151

11.4 小结  153

附录A DOM参考  154

感悟与笔记

基本类型和引用类型

基本类型:字符串 数字 布尔值 null(待确定) undifined

引用类型:对象 数组

引用传递 保存的只是对象的地址

var obj = {};
var obj1 = obj;
obj.name="hey";
obj.name === obj1.name

// 自修改对象
var items = [1,2,3];
var items1 = items;
items.push(4);
items.length === items1.length

// 更改对象的引用
//将items设置为字符串数组(对象)
var items = ["one","two","three"];
var items1 = items;
items = ["new","array"];
//现在items items1指向不同的对象
//items指向 new array
//items1指向 one two three

// 修改对象生成一个全新对象而非自修改对象

var item="test";

var itemstr = item;
items+='ing';
console.log(item!=itemstr)

作用域

var foo = 'test';
if (true) {
    var foo = 'new test';
}
console.log(foo === 'new test');

function test() {
    var foo = 'old test';
}
test();
console.log(foo === 'new test');

function test() {
    foo = 'test';
}
test();
console.log(window.foo === 'test');

上下文

function setFoo(fooInput) {
    this.foo = fooInput
}

var foo = 5;
console.log('foo at the window level is set to'+foo);
var obj = {
    foo:10
}
console.log('foo at the obj is set to'+obj.foo)

setFoo(15);
console.log('now foo at the window level is set to'+foo);
obj.setFoo = setFoo;
obj.setFoo(20);
console.log('foo at the obj is now set to'+foo)

// 更改函数上下文

function changeColor(color) {
    this.style.color = color;
}
changeColor("white");
window对象没有style对象

var main = document.createElement('div');
changeColor.call(main,"black");
console.log(main.style.color)


function setBodyColor() {
    changeColor.apply(document.body,arguments);

}

setBodyColor('black');

会员免费下载

链接:https://pan.baidu.com/s/1K0jJsMOx4ytO7MbyzXtwLw

提取码: ****** 查看

¥69/年 开通VIP会员

成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。

资源标签点击标签可查看对应分类的资源

JavaScript

资源推荐

免费 图解数据结构:使用Java

C++ 程序设计语言:第4部分 标准库(原书第4版)

C++编程思想(两卷合订本)

CSS世界

JavaScript DOM编程艺术(第2版)

C++ Primer Plus(第6版) 中文版

Vue.js快速入门

Java编程思想(第4版) [thinking in java]

Copyright © 2021-2022 知识猫. All Rights Reserved.