* let const 区别:
const 更快
const let 暂时性死区, const let 没有变量提升
* 解构赋值
数组 对象 怎么解构赋值
数组: const [a, b] = [1, 2]
对象: const { a, b: b2 } = { b: 1, a: 2 }
我不定义第三个变量, 只定义2个变量 怎么交换这个2个变量的值
[a, b] = [b, a]
const { a = 1 } = { a: undeinfind }
* 函数
函数 this定义: this代表当前正在执行的对象
箭头函数 this: 箭头函数 没有自己的 this, 他会把上一层作用域链的this当成自己的this
改变this指针: call apply bind (背一下 call apply)
箭头函数和普通函数区别: 1. 箭头函数不能当类使用 2. 没有自己的this 3. arguments
new 函数 会经过哪些步骤: 1. 创建一个空对象 2. 执行构造器 3. 给this挂在变量 4. 返回这个
对象给定义的接收变量
const obj = new (function fn () {})
作用域链 背一下
继承: 寄生组合式继承
* 数组:
数组有哪些循环方式: filter map reduce find findIndex forEach
数组的常用的方法 属性:
* 对象:
Object.keys() Object.values() Object.values()
Object.defineProperty 用法
* Symbol
用法: Symbol()
作用: 创建的变量唯一值
* Proxy:
用法: 背一下
Proxy defineProperty 区别:
* Promise 必考
有几种状态: 3中 进行中 已成功 已完成
有哪些 属性 方法:
为什么会有 promise: 为了解决 ajax 回调地狱, 不完善有缺点
* async 必考
用法: async await
同时请求3接口 全部执行完, 拿到返回值:
async function () {
const xxx = await Promise.all([ajax1, ajax2, ajax3])
}
async 实现原理:
* class
用法:
继承: extends
子类 super(): 子类没有自己 this
私有变量: TS
静态方法, 静态属性
* Module
AMD CMD === import
export 与 import 的复合写法