一.同步和异步程序
同步程序就是从头到尾一一执行
异步是 同步程序执行完成之后才来执行异步程序
js是单线程的 一个任务执行完成之后才会执行另外一个
二.js的内存结构
栈内存 和 堆内存
js分 引用类型 和原始类型
原始类型 存储在栈内存中
引用类型存储在堆内存中
三.什么是闭包
闭包就是函数嵌套函数,内部的函数就是闭包
正常情况下函数执行完成之后,内部的变量就会被销毁(释放内存)
闭包:内部函数没有执行完成,外部函数变量不会被销毁
四.宏任务和微任务
微任务 执行时机比 宏任务执行早
宏任务:setTimeout, setInterval,DOM事件,AJAX请求
微任务:Promise,async/await
五.This.
n
e
x
t
T
i
c
k
理
解
获
取
D
O
M
元
素
慢
的
原
因
触
发
时
机
:
会
在
D
O
M
异
步
渲
染
完
成
之
后
执
行
V
u
e
的
渲
染
方
式
为
一
个
异
步
渲
染
,
数
据
改
变
之
后
他
不
会
第
一
时
间
去
渲
染
,
而
是
在
下
一
个
nextTick理解 获取DOM元素慢的原因 触发时机:会在DOM异步渲染完成之后执行 Vue的渲染方式为一个异步渲染,数据改变之后他不会第一时间去渲染,而是在下一个
nextTick理解获取DOM元素慢的原因触发时机:会在DOM异步渲染完成之后执行Vue的渲染方式为一个异步渲染,数据改变之后他不会第一时间去渲染,而是在下一个nextTick执行之前的时候渲染(批量渲染)
同步 > nextTick > 异步 >setImmediate
六.什么是原型?
每一个对象都有他的原型对象,它可以使用自己原型对象上的所有属性和方法。
获取原型的方法
1.通过对象的__proto__获取(目前这个方法已废弃)
2.通过构造函数中的prototype属性拿到原型
3.通过类的prototype方法获取 ES6
构造函数中的this指向谁? 指向new创建的对象
七.什么是原型链
一个对象他有原型,他原型上面也有原型,原型的原型上面也有原型…
所有对象的最终原型都指向Object
八、如果需要更具数据变量动态的创建正则表达式则需要手动new RegExp
const reg = new RegExp(this.data,'ig')
九、promise的几种状态
pending: 初始状态,不是成功或失败状态。
fulfilled: 意味着操作成功完成。
rejected: 意味着操作失败。