前端面经(待整理)
Posted ginahan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端面经(待整理)相关的知识,希望对你有一定的参考价值。
http
http相关没有特别难的,常见的了解下就没问题。
- 介绍Http2,优点和存在什么坑或问题(必考)
- HTTP报文的请求和返回会有几个部分(请求行、请求头、请求体);每部分具体都有什么(常见的请求头)
- GET和POST的区别
- 输入url到页面加载全过程(必考)
- 介绍HTTPS;HTTP和HTTPS的区别(必考)
- HTTPS加密过程
- HTTP缓存控制(强缓存、弱缓存);缓存相关的HTTP请求头(必考)
- 对跨域的了解,跨域怎么解决(必考)
- cors的返回头、cors预请求,什么时候会出发预请求(必考)
- tcp的长连接和http2多路复用相关
- tcp拥塞控制和流量控制
- 三次握手四次挥手,为什么三次和四次
- 前端性能优化(必考)
css
css最近问的越来越少了,只要会写常见的布局就ok,难点的答不出来也没事。相比移动端相关的会问题的比较多。
- 盒模型
- positon的值,都是根据什么定位(注意下还有sticky)
- 栅格布局的原理
- 垂直居中布局
- 上中下布局,中间自适应
- 左中右布局,中间自适应
- 什么css可以减少重绘
- 动画相关属性
- 移动端适配方案(必考)
- 移动端适配1px的问题
- lineheight属性1.5和150%区别
- em和rem的区别
js
重中之重,没啥可说的刷题就完事了,而且像节流防抖、bind、promise之类的都要会手写。这里就不标必考了,因为大部分都是重点。
- 判断数组方法
- Object.assign和Object.create相关
- 深拷贝和浅拷贝
- let、const和var的区别
- 基本类型和引用类型相关(堆栈)
- bind, call, apply相关(自己要会实现)
- 介绍事件循环(宏任务微任务,要知道执行顺序)
- 定时器为什么不准(有可能会让你实现一个倒计时)
- 原型介绍
- 继承方法(手写)
- 闭包介绍和它的作用(手写)
- new实现过程
- 防抖和节流(手写)
- 数组去重、扁平化、柯里化
- this指向
- es6特性
- promise介绍(最好会写)
- promise.all和promise.race介绍(手写)
- async介绍(了解原理 generator+自执行器)
- 异步的串行(可以用promise也可以async)
- 箭头函数指向
- set、map介绍;和数组、对象的区别
- 模块化介绍(commnjs amd cmd umd export)
- localstorage sessionstorage cookie
- 事件委托
- Proxy和Object.defineProperty
框架相关(react webpack)//本人用的Vue
由于我一直用的react框架,所以面试也问的相关问题,一定要了解下框架的原理和状态管理的相关原理,同时webpack也是必考点。
- React介绍、优点(必考)
- React生命周期(最新版本的也要知道)
- 介绍diff算法(必考)
- 介绍虚拟dom、为什么用虚拟dom
- 组件间的通信方式(必考)
- redux介绍和原理(必考)
- setState什么时候异步、什么时候同步、为什么
- 事件机制
- 路由相关、几种history以及每种实现原理
- 高阶组件介绍
- 纯函数介绍
- React新特性了解么
- React hooks介绍
- React新生命周期和React Fiber
- React和Vue对比
- React常见优化方式
- webpack介绍、整理的一个流程(必考)
- webpack的优化做过什么(必考)
- 用过什么webpack的loader和plugin(必考)
- webpack的loader和plugin的原理
算法、数据结构部分
本来以为只有头条、猿辅导之类的公司才考算法,但是最后发现每家公司都会考,可能都想拿算法来做下区分度了吧。不过遇到做不出来的面试官基本也都会给提示,提示完能写出来也没问题。总体来说考的都是常见的题或者变形而来的,把LeetCode或剑指offer里常见的easy题看了就行。数据结构和设计模式问的很少,但是自己也需要总结了解下。
- 冒泡排序
- 快速排序
- 回文字符串
- 两数之和、k sum
- 大数相加
- 二分查找
- 二叉树前中后遍历
- 二叉树层次遍历
- 二叉树深度优先遍历(递归、 非递归)
- 二叉树广度优先遍历(递归、非递归)
- 和为n的二叉树路径
- 二叉树深度
- 二叉树是否对称
- 链表反转
- 16进制转10进制
项目部分
每个公司都会有项目的介绍,如果你介绍的项目面试官有兴趣的话会很加分,所以一定要认真准备。我一般会介绍之前做的一个前端微服务的架构,项目做了很多优化也比较复杂,感觉算是自己比较加分的部分。
- 介绍下你项目的难点
- 如果现在再看这个项目你会做哪些优化
- 根据项目的具体问题
hr部分
能到hr大概率就是过了,hr部分基本不会刷人,但是常见的问题也需要想想怎么说。谈薪阶段也是非常重要的,感觉现在的hr都是根据你的面试情况、工作年限再加上你手里其他offer的薪资来定的,所以手里有大厂高薪offer的话还挺重要的。hr沟通完薪资后可以试探性的加一点问问行不行,现在大部分hr都会压薪预留些空间。
- 为什么换工作
- 找工作比较看重什么
- 介绍下你的项目
- 为什么学前端
- 平常怎么学前端
- 手里有哪些offer、期望薪资
总结
以上是关于前端面经(待整理)的主要内容,如果未能解决你的问题,请参考以下文章