1. json数据的讲解
什么: json是一种用来存储结构化数据的文本数据结构
优点: 小巧, 可以轻松的与js相互转换
整体类型:
json对象: {}, 与js对象对应
json数组: [] 与js数组对应
组成:
结构: 类型与名称
值
模拟json数据:
与真实json数据在结构上要相同, 值可以不同
2. mock数据的讲解
对于前后台分离的项目来说, 前后台可以独立开发, 当后台还没有写好时, 前台应用就可以编写了
前台应用需要自己mock数据接口动态为前台提供数据, 当真实接口完成后, 切换到真实接口即可
要求: mock的json数据与真实接口的数据在结构上要相同
工具包: mockjs
3. 原型/原型链
作用: 原型链用于查找对象的属性
什么: 实例对象上都会有一个隐式原型属性(__proto__), 它指向的就是原型对象, 而原型对象也有__proto__属性指向它的原型对象
为什么__proto__指向的是原型对象?
构造函数对象上有显式原型属性(prototype), 它指向的就是原型对象
实例对象的__proto__属性被赋值为构造函数的prototype属性值
4. 作用域链
作用: 作用链用来查找变量
什么: 多个由内向外作用域形成的链
作用域: 一块代码区域, 分类全局作用域和函数/局部作用域, ES6有了块作用域
5. 闭包
如何产生闭包?
2个函数嵌套
内部函数引用了外部函数内的局部变量
执行外部函数
是什么?
包含了那个局部变量的容器
它被内部函数对象引用着
作用?
延长局部变量的生命周期
使函数外部可以多次间接操作到函数内部的数据
应用?
循环遍历加监听
IIFE定义模块
jQuery内部
###代码演示:
```js
function fn1 () {
var a = 2
function fn2 () {
a++
console.log(a)
}
return fn2
}
const f = fn1()
f()
f()
```