1.浏览器渲染过程
1. 构建DOM树
2. 构建CSS规则树
3. 浏览器将DOM树和CSS树结合,构建出渲染树
4. 布局即计算节点在屏幕中的位置
5. 绘制即遍历渲染树
2.重绘与重排(回流)
重绘:只改变样式,会导致重绘,例如改变颜色
重排:改变布局,会导致重排,例如改变大小 重排一定会导致重绘,重绘不一定重排
3. new工作原理
四个步骤:
1. 创建空对象
2. this指向这个对象
3. 对象赋值
4. 返回这个对象
4. 原型对象和原型链
原型对象:任何函数被创建的时候,系统会自动创建一个对应的对象,称之为原型对象,构造函数的属性prototype指向原型对象
原型关系:
- 构造函数的prototype指向原型对象
可以解决资源浪费及变量污染的问题
- 实例对象的__proto__属性指向原型对象
可以让实例对象访问原型中的成员
- 原型对象的construct指向构造函数
可以让实例对象知道被哪一个构造函数创建
原型链:每个对象都有原型,原型本身也是对象,原型又有原型,以此类推形成一个链式结构,称为原型链

5. call/apply/bind
相同点:都是用来改变function函数this
不同点:
apply与call和bind的传参方式不一样
call和bind会单个传参,apply是伪数组或数组传参
bind与call和apply的执行机制不同
bind会复制一个改变了this指向的函数,不会立即执行,需要调用 call和bind会立即执行
6. 防抖和节流
防抖:多次触发,只执行最后一次
节流:一段时间内触发,只执行一次
7. instanceof运算符
instanceof用于检测构造函数的prototype在不在实例对象的原型链上
8. 深/浅拷贝
深拷贝:拷贝值
浅拷贝:拷贝地址
引用类型实现深拷贝的方法:递归
9. cookie、sessionStorage、localStorage
相同点:
- 存储在客户端
三个不同点:
- 数据大小不同,cookie数据大小不能超过4k,sessionStorage与localStorage的存储比cookie大,可以达到5M
- 存储时间不同,cookie在设置的过期时间之前一直有效,localStorage永久存储,需要手动删除,sessionStorage临时存储,页面关闭,自动删除
- 存储的地方不同,cookie的数据会自动的传递给服务器,sessionStorage和localStorage数据是保存在本地的
10. 从输入URL到页面加载的全过程
1.DNS域名解析
2.建立TCP链接:三次握手
3.服务器处理数据并响应请求
4.浏览器渲染页面
11.跨域 跨域是什么?
ajax请求地址与页面地址不同源 不同源:IP地址,端口号,协议有一个不同就不同源
12.this的三种指向
- 全局函数:this指向window
- 对象方法:this指向对象
- 构造函数:this指向new创建的空对象
13.闭包
闭包是内层函数访问外层函数的变量,将变量私有化,是函数+上下文的一个组合,主要作用是用来解决变量污染
14.面向对象的三大特征
1、封装:将功能封装在对象中
2.继承:一个对象拥有其他对象的属性和方法
3.多态:一个对象在不同情况下的多种状态
15.for-in与for-of区别
1、功能不同
for-in是遍历数组的下标
for-of是遍历数组的元素
2、原型的属性
for-in会遍历原型的属性
for-of不会遍历原型的属性
3、数据类型
for-in可以遍历object类型
for-of不可以遍历object类型