高级前端面试题
面试题目一
- 跨域的基本概念和解决方法,在项目中的实际应用。
- JS事件循环和Node事件循环,两者有何区别。
- BFC,块级格式化上下文。
- 强缓存和协商缓存,缓存的应用,如何用在页面性能优化上。
- ES6新增特性。
- async await如何利用generator实现。参考
- 移动端点击穿透问题。
- Vue2.0与Vue3.0双向绑定,proxy实现。
- 爬虫方面问题,反爬如何实现,针对反爬的实现(IP代理等)。
- 图片懒加载具体实现方案和思路。
- 实习难点,收获。
- code review需要注意的点,你做code reivew的话,会重点查看哪里,怎么写出高内聚,低耦合的代码,以实习中遇到的一个通用组件实现举例。
- 未来规划,如何学习前端的,自己感兴趣的前端方向是什么。
面试题目二
- 常见攻击,CSRF是什么,如何防范,token产生策略。
- React Fiber原理。有什么优势。
- React生命周期,React16.3版本后变化,为什么要这样做。(结合React Fiber),有哪些不安全的生命周期。
- JS事件循环。
- 两列布局实现。
- 函数防抖,节流实现,不同方案实现。
- 二面主要在扯实习的事情,问了Redux原理,实习难点啥的,编程题实现一个EventBus和手写一个深拷贝。
面试题目三
- 弱网环境下页面首屏如何快速加载
- 方案:1.缓存的使用 2.SSR使用 3.骨架屏使用
- 跨域问题和解决方案
- 宏任务和微任务区别。
- node是IO密集型体现在哪里。
- 从node异步的角度来回答这个问题。
- 参考点这里➡️ https://www.jianshu.com/p/c28219029c65
- http2 http3优化点在哪 https建立连接过程
- 函数式编程思想的体现。
- 25匹马、5个赛道,怎么用最少的次数决出前三名
- CSRF攻击问题。
- 目中遇到的问题,重点说了下爬虫遇到的问题,如何解决反爬的。
- 实习遇到的问题,如何沟通,解决。
- 个人规划。
面试题目四
- js实现继承。
- 闭包。
- js事件循环。
- vue双向绑定实现原理。
- vue中指令的使用。
- vue中nextTick的原理。
- 虚拟dom以及diff算法。
- 错误监控方法。
- 页面加载会触发哪些事件。
- babel源码。
- setState原理。
- 实现一个EventEmitter类,支持事件的on,off,emit,once,setMaxListeners。
- document.ready和window.onload的区别。
- webpack loader和plugin区别。
- 打包gulp.webpack,rollup一些区别。
- webpack中循环引用问题,a里面引用了b,b里面引用了a.
- 解决方案 ⬇️
- https://blog.csdn.net/gaoqiang1112/article/details/105412329
- CICD,如何实现一个自动化部署工具,结合github中的webhook机制。
- 全排列算法的实现。
- 斐波那契算法。
- 实习遇到的困难。实习期间干的事情。
面试题目五
- 1px问题。
- 浮动解决的方案。
- js基础类型,如何判断,有什么方法。
- 闭包问题。
- node事件循环。
- 进程和线程区别。
- cpu调度算法。
- 2台计算机底层之间如何通信 socket IO通信实现。
- 计算机网络中,http地址,在7层协议中,如何一步步向下解析,从应用层到最底层的物理层,每一层处理的事情。
- 位图和矢量图的区别。
- cookie中常见的字段。
- 同源策略。
- http中一些常见的响应头和请求头,有什么应用。
- 简单请求和非简单请求区别。
- 函数式编程思想。
- 如何自己实现一个单点登录系统。
- ts自己的看法,和应用。
- react fiber原理。
- http2.0 http3.0分别改进了什么
- 手写diff。
- 手写Promise.All()
- 算法题:版本号比较
- https://leetcode-cn.com/problems/compare-version-numbers/
- IP地址复原
- https://leetcode-cn.com/problems/restore-ip-addresses/