一、基础认知
1、全局作用域
作用域链
嵌套关系的作用域串联起来形成了作用域链
相同作用域链中按着从小到大的规则查找变量
子作用域能够访问父作用域,父级作用域无法访问子级作用域(就近原则)
2、 闭包
3、变量提升
变量提升是 JavaScript 中比较“奇怪”的现象,它允许在变量声明之前即被访问
4、动态参数
arguments 是函数内部内置的伪数组变量,它包含了调用函数时传入的所有实参
5、剩余参数
借助 ... 获取的剩余实参
6、箭头函数 7、解构赋值
8、构造函数
构造函数是专门用于创建对象的函数,如果一个函数使用 new 关键字调用,那么这个函数就是 构造函数
9、Array
二、面向对象
它具有 3 个显著的特征:封装、继承、多态
应用:
当访问对象的属性或方法时,先在当前实例对象是查找,然后再去原型对象查找,并且原型对象被所有实例共享
2、什么是原型对象??
答:是构造函数的一个属性,它的数据类型是对象
--proto--
原型对象有啥用??
答:原型对象对应的构造函数的实例方法或属性不存在时会去查找原型对象
3、原型链
三、this
1、普通函数
2、箭头函数
3、 定义值
有 3 个方法可以动态指定普通函数中 this
的指向
四、class 
2、静态成员
3、构造函数
4、继承 extends
5、super