最近面临一系列校招活动,我会整理一份详细的前端面试题供大家准备,整理的内容来自互联网,包括一些 bbs 论坛、群和社区等。可以先把以下的问题想好了,我想你以后就可以试着去投一份前端的工作简历。慢慢来,我会把以下信息准备好!
个人及简历
- 能缩减的信息尽量缩减,比如一些专业必修课的课程就没有必要写上去
- 个人信息一定要写全,如姓名、电话、邮箱、求职意向(加分项:持续输出的博客与 Github)
- 获奖情况方面可以把一些有代表性的比赛及名次写进去,最好不超过 3 个
- 阐述自我介绍
- 了解想要的工作性质
- 优点缺点,缺点怎么提高
- 怎么学习的,为什么走前端
- 这段时间的收获及成长
- 还有没有其他的面试
- 如果 BAT 都发 Offer,怎么选
- 最近看什么书
- 有什么想问的
有关项目
- 从项目开始入手(面试官提问项目开始,建议整理好主要的三个项目、介绍,基本情况等)
- 做项目中遇到了一些什么难题,如何解决的
- 项目介绍用一句话概述,着重点在于技术点的描述,建议用一些显著性的数字注明成果(经过何种方案,性能多大提升等)
- 对于业务型的项目,不要把那些 CURD 的功能写出来(太 low 了千篇一律),这种项目在编码的时候要多思考,看看哪些卓越的技术点可以提炼出来概括
网络基础
- TCP 和 UDP 区别、TCP 和 UDP 是哪一层(了解 ISO/OSI 网络体系,204 页)
- 为什么 TCP 是可靠传输(指向)
- 为什么 DNS 要快,要用 UDP
- 从输入URL到页面加载发生了什么?(指向)
- DNS 解析
- TCP 连接
- 发送 HTTP 请求
- 服务器处理请求并返回 HTTP 报文
- 浏览器解析渲染页面
- 连接结束
- HTTP、HTTPS 的区别、什么是 HTTP1.1
- HTTPS 是什么,怎么加密传输,怎么对称加密和非对称加密,举例
- 三次握手(有关 TCP 传输)
- GET、POST、DEL、PUT 等方法
- Servlet 生命周期
算法
- 一个函数,输入两个字符串,看两个字符串是不是切一刀反转的,是返回 true,不是返回 false,如 12345 和 34512 是 true
- 各种排序算法的时间复杂度
- 快排
- 平衡二叉树
- 堆和栈,为什么有的放堆有的放栈
- 虚拟 Dom 具体怎么对比的,为什么它性能好
设计模式
- MVC 是什么,MVVM 是什么,React 是哪种
- 代表 Model-View-Controller
- MVVM 是 Model-View-ViewModel 的简写,它本质上就是 MVC 的改进版
- React 主要用于构建 UI,很多人认为 React 是 MVC 中的 V(视图)
JavaScript
- call、apply、bind
- JavaScript 数组有哪些方法
- 哪些会改变原数组
- 数组去重
- 箭头函数和之前的区别
- JavaScript 对象,原型,闭包
- ES6 用过哪些新特性
- every 和 some 的区别
- 写一个函数判断是否存在循环引用
- 深拷贝和浅拷贝
- 继承,原型链继承怎么实现
- 函数中的 rest 参数可以用别的名字代替吗
- promise 函数了解吗,如何实现一个 A->B->C 说了 Promise.then,然后又问了如果事情的个数不知道呢
- async 和 await 了解吗
- 用过 webpack 讲一下 webpack,有什么作用,讲到了性能优化,有哪些性能优化的地方
- AMD 和 commonjs 怎么使用,怎么配置,有哪些好处
- webpack 的优化方式,用途
- 如果有 10 个脚本只用到了 1 个,怎么打包优化
- 用到的 loader 继承方式
- ES6 的类中,静态属性和构造函数谁先加载?为什么?
- 静态属性和方法是类的还是实例的
- 怎么在外部调用静态属性
- mongoDB 是关键型库吗
- 移动端适配方案有哪些
- rem是什么、1vw、1vh 等于多少
- H5 的存储有哪些
- sessionStorage 和 localStorage 的区别
- 如果关闭一个标签页它的 sessionStorage 还有吗?那它什么时候清除
- 事件循环
- setTimeout 什么时候执行
- Node.js 中的 process.nextTick 什么时候执行
数据库
- 数据库外连接内连接区别
操作系统
- 进程和线程(P86)的关系
- 进程怎么分配资源?
- 线程之间的通信(P82)
- 什么时候用进程什么,时候用线程
未整理部分
1、自我介绍
2、跨域请求的jsonP是怎么实现的
3、你对浏览器的cookie和本地存储了解多少
4、有个应用场景,你在淘宝登录之后请求到天猫页面(不同子域),登录状态是保留的,如何实现的
5、说一下浏览器的渲染过程
6、js对同一个DOM元素进行重复读写,会引起几次重排,会出什么问题,怎么解决
7、前端性能优化的方案
8、首屏加载怎么优化
9、说一下react-redux吧
10、redux和组件之间的联系
11、前端工程化webpack是如何使用的?
12、webpack的loaders和plugins的区别?有自己写过或者去了解自定义loaders、plugins吗
13、有使用nodejs搭建后端应用吗
14、说一下ES6的异步编程吧,generator?promise?
15、有移动无线端的开发经验吗?有去了解相关技术吗
16、LocalStorage 与 Cookie,LocalStorage冲突解决
17、Echarts & D3,原理
18、Canvas 和 SVG 区别(指向)
Canvas 是使用 JavaScript 程序动态生成绘图,标量,适合像素处理做 动态渲染和大数据量绘制;SVG 是使用 XML 文档描述来绘图,矢量,适合静态图片展示高保真文档查看和打印的应用场景。
如果需要下载100张图片,怎么分配进程
为什么要加 keep alive,有没有自己验证过?
tcp的拥塞机制 报头大小 检验和放在哪儿?
为什么要控制流量 怎么控制 什么情况下控制?
找到一个有序数组中的下标和值相等的那个值?
为什么使用vue vue好在哪里?
为什么不用原生js?
为什么说消耗资源更少 哪种资源?
为什么要看源码?
单向数据流
每个都要举例
1.原型链和作用域链
2.构造函数声明属性和property声明属性的区别。如果有一个字符串和一个数组在property声明会有什么问题。
3.类对象如何自定义事件,及监听,要说出具体的实现方式和思路。
4.捕获和冒泡的区别。
5.网络请求的图片宽高不定如何在给定区域内较好的显示,要防抖。
6.服务端如何获取客户端获取文档到加载文档完成的时间。
7.跨域,在不动服务端代码的情况下的解决方案。
8.网页性能优化。
9.在自己学习的过程中有没有自己实现一些新颖的功能或者自己写过一些组件等等。
一面:
1,面试官让我描述一个自己印象最深的项目
2,针对项目中的技术进行发问
3,因为我描述项目存储数据比较多,让我重新设计数据库的表,怎么设计
二面:
1、问了冒泡排序,快排,和归并排序及优缺点和优化
2,网络方面有osi七层,tcp/ip五层,分别有哪些协议及作用
3,爬虫用的什么数据结构
4、tcp的流量控制和拥塞控制
5,mysql用的什么存储引擎,这个存储引擎用的什么数据结构 ,有哪些优缺点,怎么使用
6,jvm的垃圾回收机制和垃圾收集器
7、spring当中事物的隔离级别
8、jdk1.8 concurrenthashmap 的新的特性,有没有看过源码
9、 threadlocal了解吗
10,问了redis的一些问题,项目中有(扩容,失效key清理策略等)
11,剩下的都是项目的东西(kafka filebeat elk原理,主从选举,复制等)
12,后面扩展的问了一些大数据相关的,问我一些大数据处理框架是否有了解,具体什么忘记了
0,自我介绍,针对得到奖项问了是top多少
1,设计微信附近的人算法
2,对Java的理解
3,线程和进程
4,去重策略
5,后面问了项目中的elk中的东西
6,后面就问了后半年的计划等
四面 交叉面
本来以为三面结束就是hr面了,又收到一面交叉面
1,自我介绍
2,针对一个实习项目问了很久
3,设计一个算法,实现两个10g大文件在10m的内存中将两个大文件中重复的放进第三个文件
1,介绍一个对于你来讲成长最大的项目,你在项目中承担的作用
2,对阿里有没有了解
3,对电子商务有没有了解
4,了解新零售吗
5,电子商务和新零售有什么区别
6,还有哪些电子商务平台 国内外
7,用过哪些算法模型
8,读过哪些算法方面的书籍
9,你的论文是做了什么,解决了什么问题
10,开放题 数据和商业的关系
11,后半年的计划安排
网友评论