前端面试总结摘录

354 阅读6分钟
  • 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后进入背调,一切通过后进入入职预约流程,之后就等待入职咯~~~。

总体感受

现在前端除了一些基本的面试知识外,明显感觉到算法的考虑在逐步加强,所以也总结一些重点的考点吧。一些很基本的原理我就不写了,什么闭包,什么原型链

  1. 对JavaScript的Api可以手写。

  2. bind

  3. new

  4. promise

  5. .....

  6. 浏览器的加载原理,回流重绘,url输入后的流程,关键渲染路径等....

  7. 框架的原理,了解你最常用的框架的内部原理以及实现,包括思想等。

  8. 浏览器和node的GC原理

  9. 浏览器和node之间eventLoop的区别

  10. webpack的基本原理

  11. 数据库,redis,nginx的一些基本概念以及基本原理和优化。

  12. 对于前端页面的优化方案,包括首屏加载,资源整合,网络优化,长列表优化等

  13. 网络安全,xss,csrf,cookies保护等

  14. 网络知识

  15. tcp

  16. https和http

  17. dns

  18. udp

  19. 算法和数据结构

  20. 基本常用排序

  21. 链表操作

  22. 树结构操作

  23. 贪心算法

  24. 回溯算法

  25. 双指针操作

  26. 哈希表

  27. 动态规划(一般为加分题)