JS 重点回顾与总结 Note-FrontEnd-18

307 阅读2分钟

JS 重点回顾与总结,内容包括知识点、难点和重点、JS 世界的构造顺序、图解 JS 世界、总结。

一、知识点

基本概念: 内存、变量、数据类型、对象

控制语句: if...else... 和 for...

对象:

  1. 原型、原型链
  2. 对象分类
  3. new 一个新对象
  4. 构造函数
  5. this 的隐式传递和显式传递

二、难点和重点

JS 三座大山

原型、this、AJAX

第一个重要知识:JS 公式

对象.__proto__ === 其构造函数.prototype
JS 唯一公式,如果不会就套公式

第二个重要知识:根公理

Object.prototype 是所有对象的(直接或间接)原型
加了一个直接或间接,所谓公理就是规定好的

第三个重要知识:函数公理

所有函数都是由 Function 构造的
任何函数.__proto__ === Function.prototype
任意函数包括 Object / Array / Function

基于这三个知识和基础知识,可以推出 JS 世界

三、JS 世界的构造顺序

1. 创建根对象 ##101(toString),根对象没有名字
2. 创建函数的原型 #208(call / apply),原型 __p 为 #101
3. 创建数组的原型 ##404(push / pop),原型 __p 为 #101
4. 创建 Function #342,原型 __p 为 #208
5. 用 Function.prototype 存储函数的原型,等于 #208
6. 此时发现 Function 的 __proto__ 和 prototype 都是 #208
// 破案了,Function 函数是自己构造自己
7. 用 Function 创建 Object
8. 用 Object.prototype 存储对象的原型,等于 #101
9. 用 Function 创建 Array
10. 用 Array.prototype 存储数组的原型,等于 #404
11. 创建 window 对象
12. 用 window 的 'Object' 'Array' 属性将 7 和 9 中的函数命名
13. 记住一点,JS 创建一个对象时,不会给这个对象名字的
——————————————————————————
1. 用 new Object() 创建 obj1
2. new 会将 obj1 的原型 __p 设置为 Object.prototype,也就是 #101
3. 用 new Array() 创建 arr1
4. new 会将 arr1 的原型 __p 设置为 Array.prototype,也就是 #404
5. 用 new Function 创建 f1
6. new 会将 f1 的原型 __p 设置为 Function.prototype,也就是 #208
————————————————————————————————————
1. 自己定义构造函数 Person,函数里给 this 加属性
2. Person 自动创建 prototype 属性和对象的对象 #502
3. 在 Person.prototype #502 上面加属性
4. 用 new Person() 创建对象 p
5. new 会将 p 的原型 __p 设为 #502

四、图解 JS 世界

图解 JS 世界

五、总结

1. 构造函数

  1. 是用来构造对象的
  2. 会预先存好对象的原型,原型的原型是根
  3. new 的时候将对象的 __p 指向原型

2. 对象

  1. 所有对象都直接或间接指向根对象
  2. 如果对象想要分类,就在原型链上加一环
  3. 用构造对象可以加一环

「资料来源:©饥人谷」