1.背景
校招进入一家初创型公司,工作刚满两年的前端入门级选手,写过vue,目前主要以React为主。从准备面试到拿到offer经历了将近5个月,大大小小面试20余次,刚开始的时候以为自己准备好了,但是没想到以为的准备好其实还差得远,不得不说,这几个月的面试与学习让我的前端技术突飞猛进,对很多知识的理解变得更加的深入,在此总结一下现在前端常考的一些知识点。有空的时候再把答案填补上~
2.网络及浏览器原理
- 从输入url到渲染出界面发生了什么?
- 网络七层协议/五层协议?
- 三次握手和四次挥手
- Http1.x,http2.x以及https的区别?https的对称加密和非对称加密
- 强缓存和协商缓存
- http常见的状态码
- 简单请求和复杂请求
- XSS和CSRF
- 跨域及解决方案
- 浏览器的进程和线程
- 内存泄漏和垃圾回收
- V8原理,标记整理,全停顿
- js异步加载
- js,css,html渲染阻塞
- 浏览器渲染流程
- 重排和重绘
- 浏览器的性能优化
- 如何减少白屏时间
3.js基础
- this的指向
- 常见的数组方法有哪些
- ’ == ’ 和 ’ === ’ 的区别
- set和map的使用场景
- var,let,const,变量提升,暂时性死区
- 对作用域的理解
- 闭包和柯里化,高阶函数
- 数据的浅拷贝和深拷贝
- 防抖与节流
- sleep函数的实现
- 手写promise相关函数
- eventloop,宏任务,微任务
- 正则相关
- 迭代器生成器
- proxy和defineProperty
4.css基础
- css实现垂直水平居中,多多益善
- css动画的实现
- flex布局
- 如何使用border画出三角形
- BFC和外边框重叠
- 如何做移动端适配
- 有哪些隐藏页面元素的方式
- em/rem/px/vh/vw
5.框架相关(vue & React)
- 两个框架的区别
- vue的nextTick原理
- vue的生命周期/React的生命周期
- vue3的新特性
- diff算法(vue2,vue3,React15,React 16)
- 两个框架的组件通信
- 两个框架的数据流
- fiber原理
- conCurrent mode
- React减少渲染次数的方法(shouldComponentUpdate,pureComponent,memo)
- 类组件和函数式组件的区别
- 常用的hooks有哪些,有没有自己写过hook
- React的事件机制
- vdom的原理和优势
- setState的执行机制,同步还是异步
- 纯函数的含义及优势
6.模块化,组件化和工程化
- 对这三个概念的理解
- commonjs和esmodule的区别
- babel的原理
- polyfill如何做浏览器兼容
- 如何实现组件的按需加载
- babel-import-plugin的原理
- treeshaking原理
- source-map的理解
- rollup和webpack的区别
- webpack中loader和plugin的区别
- loader的执行顺序,手写compose函数
- webpack的打包流程
- splitChunk
- webpack如何进行打包优化
- webpack/rollup的热更新
- node异步编程的原理
- 如何在项目中做代理转发
7.算法
- 快排
- 二分法
- 递归/动规
- 栈和队列
- 正则(算是算法编外人员吧)
- 数组的应用(也算编外人员)
|