网易
1.vue.use()做了什么。
-- 提供标准化插件拓展接口,默认执行被加载模块的install函数。
2.微前端介绍
3.webpack运行机制
4.Ajax手动封装
5.axios拦截器如何实现。
6.webSocket封装。
7.js事件机制
-- 事件队列:主任务-->微任务(执行所有微任务,promise)-->宏任务(settimeout)-->微任务
8.Vue基本原理
9.原生事件和vue事件的封装和绑定
10.捕获和冒泡,执行顺序
吉利
1.Vue基本原理
2.原型链
3.深度优先和广度优先
const treeData = [{ name: 'a', children: [{ name: 'b', children: [{ name: 'd' }, { name: 'f' }]
}, {
name: 'c',
}]
}]
通过深度优先和广度优先两种方式输出所有的name。
招银
1.手写数组pop、push、shift、unshift
2.面向对象编程
涂鸦
1.垃圾回收
-- 标记技术,引用清除
2. 浏览器的渲染过程是怎么样的
-- 浏览器采用流式布局模型(Flow Based Layout) 浏览器会把 HTML 解析成 DOM,把 CSS 解析成 CSSOM,DOM 和 CSSOM 合并就 产生了渲染树(Render Tree)。 有了 RenderTree,我们就知道了所有节点的样式,然后计算他们在页面上的大 小和位置,最后把节点绘制到页面上。 由于浏览器使用流式布局,对 Render Tree 的计算通常只需要遍历一次就可以完 成,但 table 及其内部元素除外,他们可能需要多次计算,通常要花 3 倍于同 等元素的时间,这也是为什么要避免使用 table 布局的原因之一。
- 聊一下重绘,回流
-- 重绘:DOM元素样式发生改变,切不影响其他全元素的排列,颜色、背景等属性的改变。
-- 回流:DOM元素样式改变,导致周围趋于元素排列的改变。比较影响性能。
回流必定会发生重绘,重绘不一定会引发回流。
优化:
css
1、使用 transform 替代 top
2、使用 visibility 替换 display: none ,因为前者只会引起重绘,后者会引发回
流(改变了布局)
3、避免使用 table 布局,可能很小的一个小改动会造成整个 table 的重新布局。
4、尽可能在 DOM 树的最末端改变 class,回流是不可避免的,但可以减少其影
响。尽可能在 DOM 树的最末端改变 class,可以限制了回流的范围,使其影响
尽可能少的节点。
5、避免设置多层内联样式,CSS 选择符从右往左匹配查找,避免节点层级过多
JavaScript
1、避免频繁操作样式,最好一次性重写 style 属性,或者将样式列表定义为 class
并一次性更改 class 属性。
2、避免频繁操作 DOM,创建一个 documentFragment,在它上面应用所有 DOM
操作,最后再把它添加到文档中。
3、避免频繁读取会引发回流/重绘的属性,如果确实需要多次使用,就用一个
变量缓存起来。
4、对具有复杂动画的元素使用绝对定位,使它脱离文档流,否则会引起父元素
及后续元素频繁回流。
4.UDP和TCP的区别
-- TCP面向连接(如打电话要先拨号建立连接)。UDP是无连接的,即发送数据之前不需要建立连接。
-- TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。
UDP尽最大努力交付,即不保证可靠交付。
-- TCP传输效率相对较低。UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。
-- TCP连接只能是点到点、一对一的。
UDP支持一对一,一对多,多对一和多对多的交互通信。
5.HTTP2.0和HTTP1.X相比的新特性
-- 新的二进制格式(Binary Format),HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。
-- 多路复用(MultiPlexing),即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。
-- header压缩,如上文中所言,对前面提到过HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。
-- 服务端推送(server push),同SPDY一样,HTTP2.0也具有server push功能。