JavaScript核心技术开发解密 pdf
内容简介
本书针对JavaScript 中的核心技术,结合前沿开发实践,对JavaScript 的内存、函数、执行上下文、闭包、面向对象、模块等重点知识,进行系统全面的讲解与分析。每一个知识点都以实际应用为依托,帮助读者更加直观地吸收知识点,为学习目前行业里的流行框架打下坚实基础。
本书适合JavaScript 初学者,有一定开发经验但是对于JavaScript 了解不够的读者,以及开发经验丰富但没有形成自己知识体系的前端从业者。
作者简介
阳波 ,毕业于四川师范大学计算机科学学院,软件工程专业,先后在盛大星辰科技、软通动力、老虎证券从事Web前端开发的工作。目前就职于老虎证券(北京)。
目录
1 三种基础数据结构1
1.1 栈 1
1.2 堆 3
1.3 队列. 4
2 内存空间5
2.1 基础数据类型与变量对象. 5
2.2 引用数据类型与堆内存空间 . 7
2.3 内存空间管理 . 9
3 执行上下文11
3.1 实例1 11
3.2 实例2 15
3.3 生命周期 18
4 变量对象20
4.1 创建过程 20
4.2 实例分析 23
4.3 全局上下文的变量对象 26
目录| vii
5 作用域与作用域链27
5.1 作用域 . 27
5.1.1 全局作用域27
5.1.2 函数作用域28
5.1.3 模拟块级作用域 29
5.2 作用域链 31
6 闭包33
6.1 概念. 33
6.2 闭包与垃圾回收机制 . 38
6.3 闭包与作用域链 39
6.4 在Chrome 开发者工具中观察函数调用栈、作用域链与闭包. 41
6.5 应用闭包 49
6.5.1 循环、setTimeout 与闭包. 49
6.5.2 单例模式与闭包 50
6.5.3 模块化与闭包 . 53
7 this 59
8 函数与函数式编程67
8.1 函数. 67
8.2 函数式编程. 75
8.2.1 函数是一等公民 77
8.2.2 纯函数 . 80
8.2.3 高阶函数 85
8.2.4 柯里化 . 91
8.2.5 代码组合 101
viii | 目录
9 面向对象106
9.1 基础概念 106
9.1.1 对象的定义106
9.1.2 创建对象 107
9.1.3 构造函数与原型 108
9.1.4 更简单的原型写法114
9.1.5 原型链 . 114
9.1.6 实例方法、原型方法、静态方法117
9.1.7 继承118
9.1.8 属性类型 122
9.1.9 读取属性的特性值127
9.2 jQuery 封装详解 127
9.3 封装一个拖曳对象. 134
9.4 封装一个选项卡 147
9.5 封装无缝滚动 . 153
10 ES6 与模块化159
10.1 常用语法知识 . 160
10.2 模板字符串. 167
10.3 解析结构 168
10.4 展开运算符. 171
10.5 Promise 详解173
10.5.1 异步与同步173
10.5.2 Promise. 175
10.5.3 async/await . 185
10.6 事件循环机制 . 189
10.7 对象与class . 197
10.8 模块化 . 202
10.8.1 基础语法 204
10.8.2 实例209
感悟与笔记
面向对象
基本概念
var person = { // 属性为基本值 name: 'Tom', age: 18, // 属性为函数 getName: function () { return this.name; }, // 属性为对象 parent: {} }
创建对象
在了解对象的定义之后,我们如何去创建一个对象呢?红宝书中对创建对象总结了六种方法,由于红宝书中的内容作者理解的有所欠缺,这里只描述本书中创建对象的方法。
通过关键字new来创建对象
var obj = new Object();
通过字面量的形式创建对象
var obj = {};
当我们想要给创建的对象添加属性与方法时,可以这样操作。
var person = {}; person.name = 'Tom'; person.getName = function () { return this.name; } // or var person = { name: 'Tom', getName: function () { return this.name; } }
当我们需要访问对象的属性与方法时,我们可以这样。
var person = { name: 'Tom', age: 20, getName: function () { return this.name; } } // 访问name属性 person.name; // or person['name']; // or 注意这里_name是一个变量 var _name = 'name'; person[_name];
要注意,当我们访问的属性名是一个变量时,只能使用中括号的方式。
会员免费下载
链接:https://pan.baidu.com/s/1LpgQgjUT00_HnLPxqY6tzQ
提取码: ****** 查看
成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。
资源标签点击标签可查看对应分类的资源