1.浏览器渲染页面的流程css
步骤:1)解析HTML文件,构建DOM Treehtml
2)解析CSS,构建CSSOM Tree(css规则树)前端
3)将DOM Tree和CSSOM合并,构建Render Tree(渲染树)ajax
4)reflow(重排):根据Render tree 进行节点信息计算(layout)数据库
5)repaint(重绘):根据计算好的信息绘制整个页面json
理论上,每一次的dom更改或者css集合属性更改,都会引发一次浏览器的重排/重绘过程,而若是是css的非几何属性更改,则只会引发重绘过程,因此重排必定引发重绘,重绘不必定引发重排后端
由于有时JS也参与DOM Tree的构建,于是咱们会先执行js再开始构建渲染树,JS脚本阻塞Render tree的构建,即阻塞了页面的渲染api
2.企业项目中为何要使用NodeJS?浏览器
Node.JS适合如下的情景缓存
1)实时性应用,好比在线多人协做工具,网页聊天应用
2)以I/O为主的高并发应用,好比为客户端提供API,读取数据库
3)流失应用,好比客户常常上传文件
4)先后端分离
3.AMD和CMD的区别
AMD 依赖前置
CMD 依赖就近
4.当输入www.baidu.com后会发生哪些事情?
1)输入网址 按下回车 ----DNS解析
2)找到相对应的服务器
3)TCP的三次握手
4)找到资源库,获取相对应的数据
5)解析数据
html css js img--TCP四次挥手
6)返回客户端页面
5.前端渲染和后端渲染的区别和优缺点?
首先,介绍一下 SPA、SEO、SSR 三者的区别
6.浅谈堆和栈的理解
js变量存储有栈存储和堆存储,基本数据类型的变量存储在栈中,引用数据类型的变量存储在堆中,引用类型数据的地址也存在栈中
当访问基础类型的变量时,直接从栈中取值。当访问引用类型变量时,先从栈中读取地址,再根据地址到堆中取出数据
7.js的数据类型分为哪几类
基础数据类型:== !=- *= /= -=%=
强制类型转换:Number parseInt();取整转换parseFloat()
8.undefined和null区别
null是一个表示"无"的对象,转为数值为0
undefined:是一个表示"无"的原始值,转为数值时为NaN
undefined:
(1)变量被声明了,但没有赋值时,就等于undefined
(2)调用函数时,应该提供的参数没有提供,该参数等于undefined
(3)对象没有赋值的属性,该属性的值为undefined
(4)函数没有返回值时,默认返回undefined
null:
(1)做为函数的参数,表示该函数的参数不是对象
(2)做为对象原型链的终点