- dom树节点和渲染树节点一一对应吗,有什么是dom树会有,渲染树不会有的节点
- CSS会阻塞dom解析吗?
- requestIdleCallback是干什么用的
- 浏览器的渲染原理
- 浏览器的渲染过程
- 关键渲染路径详述
- 避免回流的方式
- 跨域的方式
- 前端的网络安全如何防御(xss,csrf)
- cookies的保护方式
- 浏览器的缓存机制
- 什么文件用强缓存,什么文件用协商缓存
- React-Native的原理,优缺点
- react的虚拟dom和diff描述
- react渲染优化(class,hook)
- react的context的使用场景
node和后端知识
- mysql和mongo的区别,使用情景
- node有什么情况会导致内存溢出
- node的内存分配
- event loop(浏览器和node)
开放性题目
- 首屏优化方案
- 在App中如何实现前端资源离线缓存(方案)
算法
const arr = [101,19,12,51,32,7,103,8];
1.找出连续最大升序的数量
2.找出不连续最大升序的数量
二面-技术面
晚上,视频面试,属于其他部门同事。
前端知识
- 浏览器的输入url后的过程
- js异步方式
- promise.resolve是干嘛的
- promise.then如何实现链式调用
- promise.then不返还一个promise还能用then吗
- promise.finally的作用,如何自己实现finally
- promise原理
- webpack的异步加载如何实现
- webpack的分包策略
- 跨域方式有什么
- jsonp的原理
- csrf防御手段
- cookie的samesite属性作用
- js对象循环引用会导致什么问题
- react如何阻止原生默认事件
- react的fiber节点树是什么数据结构,为什么要用这样的数据结构
- react 异步渲染原理,优先级如何划分
- react hook有自己做一些自定义的hook吗
- react key的原理
- react如何实现函数式调用组件,toast.show()
- react新增了什么生命周和删除了什么生命周期,为什么要删除
node后端知识
- node对于option请求如何处理
- node如何处理cors跨域
- ES modules和commonjs的区别
- node的event loop和浏览器的区别
- dns查询过程,dns用什么协议发起dns查询的
- tcp和udp区别
- tcp的三次握手和四次挥手
- 协商缓存和强缓存的区别
- https协议握手大概过程
- 对称加密和非对称加密的区别
- 非对称加密,私钥和公钥的区别
- https证书的作用
其他
- 如何埋点,为什么用1*1像素的gif图片做上报
- 如何定义首屏
算法
// 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
// 示例 1:
// 输入: [1,2,3,4,5]
// 输出: True
// 示例 2:
// 输入: [0,0,1,2,5]
// 输出: True
// 限制:
// 数组长度为 5
// 数组的数取值为 [0, 13] .
三面-技术面
早上,视频面试,leader面试
前端知识
- 绑定事件有多少种方式
- 事件触发的流程,捕获和冒泡
- 捕获阶段能终止吗
- 终止冒泡阶段有哪些
- 如果实现one绑定事件
- 事件委托的原理
- event.target和event.currtager的区别
- 浏览器显示一个图片有什么方式
- 如何获取url中的?后的参数
- 浏览器的内存回收机制 标记清除还是引用计数?
- 如何解决跨域
- 什么是简单请求什么复杂请求
- const和let有什么区别
- ES6常用的api有哪些
- 数组断引用的方式有什么
- Base64图片有什么问题
node后端知识
- Http强缓存和协商缓存用的是什么字段,整体流程是怎样
- Https原理
- Https第一次请求会携带什么
- Ca证书的内容是什么
- Https2.0的特性
- xss攻击原理的防御方式
- Csrf攻击原理和防御方式
- 二进制分帧的具体是什么
- Keep alive和多路复用的区别
- Option请求的作用
- Node gc方式
- 新生代和老生代的区别
- 新生代内存地址移动到老生代内存地址的过程
开放问题
- 长列表优化方案
- 首屏优化方案
- Node如何保证第三方接口的稳定性
四面-GM面
- 浏览器从写入url到加载完毕的流程
- 浏览器白屏原因
- 页面打开后cpu和内存快速增长,如何定位问题,可能有什么问题
- 长列表优化,以及长列表中,如果带搜索功能如何实现
五面-技术委员会技术面
最新规定9级及以上级别需要1-5轮的技术委员会进行加面。
- 最满意的项目列举2个
- 为什么使用RN
- 有100匹马,场地只有4条跑道,得出最快的4只马需要多少轮 Lam:100匹马,4个赛道,找出跑最快的4匹马。
- 已知函数fn1会随机返回1-5的整数,要求基于fn1编写fn2,要随机生成1-7,fn2内不能使用系统的随机api,只能调用fn1获取随机数
六面-技术委员会技术面
- 前端的未来发展的一些思考
- Serverless的优缺点,前端的应用范围
- 页面性能优化
- 做过的专项的架构图
七面-HR面
- 为什么离职
- 你现在公司最有成就感的项目是什么
- 你现在公司最有挑战的项目是什么,你是如果解决难题的
- 期望薪酬
因为我以前有其他公司的工作经验,所以需要做性格测试,之后就是等出薪酬方案和hr沟通,然后发offer,offer后进入背调,一切通过后进入入职预约流程,之后就等待入职咯~~~。
总体感受
现在前端除了一些基本的面试知识外,明显感觉到算法的考虑在逐步加强,所以也总结一些重点的考点吧。一些很基本的原理我就不写了,什么闭包,什么原型链
-
对JavaScript的Api可以手写。
-
bind
-
new
-
promise
-
.....
-
浏览器的加载原理,回流重绘,url输入后的流程,关键渲染路径等....
-
框架的原理,了解你最常用的框架的内部原理以及实现,包括思想等。
-
浏览器和node的GC原理
-
浏览器和node之间eventLoop的区别
-
webpack的基本原理
-
数据库,redis,nginx的一些基本概念以及基本原理和优化。
-
对于前端页面的优化方案,包括首屏加载,资源整合,网络优化,长列表优化等
-
网络安全,xss,csrf,cookies保护等
-
网络知识
-
tcp
-
https和http
-
dns
-
udp
-
算法和数据结构
-
基本常用排序
-
链表操作
-
树结构操作
-
贪心算法
-
回溯算法
-
双指针操作
-
哈希表
-
动态规划(一般为加分题)