这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道
HTML
-
HTML5有哪些新特性?
-
Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?
-
如何实现浏览器内多个标签页之间的通信?
-
⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?
-
简述⼀下src与href的区别?
-
cookies,sessionStorage,localStorage 的区别?
-
HTML5 的离线储存的使用和原理?
-
怎样处理 移动端 1px 被 渲染成 2px 问题?
-
iframe 的优缺点?
-
Canvas 和 SVG 图形的区别是什么?
JavaScript
-
问:0.1 + 0.2 === 0.3 嘛?为什么?
-
JS 数据类型
-
写代码:实现函数能够深度克隆基本类型
-
事件流
-
事件是如何实现的?
-
new 一个函数发生了什么
-
什么是作用域?
-
JS 隐式转换,显示转换
-
了解 this 嘛,bind,call,apply 具体指什么
-
手写 bind、apply、call
-
setTimeout(fn, 0)多久才执行,Event Loop
-
手写题:Promise 原理
-
说一下原型链和原型链的继承吧
-
数组能够调用的函数有那些?
-
PWA使用过吗?serviceWorker的使用原理是啥?
-
ES6 之前使用 prototype 实现继承
-
箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?
-
事件循环机制 (Event Loop)
-
自我介绍
-
说说虚拟DOM和原始DOM相比的优缺点
-
根据svelte框架,类比一下你还能说出什么缺点嘛?
-
BFC是什么?
-
什么情况下使用BFC
-
该怎么触发BFC
-
移动端适配
-
rem 和 em 的区别
-
Vuex用过modules吧,说说A文件内的actions怎么修改B的state
-
TypeScript变量后面加上感叹号什么意思
-
类型断言的方法
-
异步
-
大概写下Promise.all的原理吧
三面
-
自我介绍
-
重点项目介绍,难点挑战
-
权限控制方案,怎么实现的,整体的思路如何
-
模块化是怎么划分的,具体做过哪些
-
提出了一个输入框远程搜索提示的功能
-
说说版本是怎么迭代的
面试准备
校招 -1 年,这个阶段还属于成长期,面试时更需要看重的是你的基础和热情。对于 JS 基础,计算机基础,网络通信,算法等部分的要求会相对高一些。毕竟这个阶段比较难考察你的业务项目中的沉淀,所以只能从基础部分入手考察。下面有几条小建议:
-
在学校学习,或是利用网络上的各种资料巩固自己的基础,是这个阶段的关键。
-
在简历里展示出你的优势,让面试官看到你的潜力。
-
多去了解社区前沿技术,关注国内外的各种技术趋势。
-
尝试自己写一些小项目,或者是参与社区开源的项目。
-
开始记录自己的技术博客。
规划简历
通常来说,简历结构都差不多,内容最好控制在一张A4纸内。
-
个人信息
-
教育经历
-
工作经历
-
项目经历
-
自我总结
个人信息:
简洁明了,主要包括:
-
姓名、联系方式,邮箱;
-
学校,专业;
-
求职岗位;
教育经历:
-
写清楚学校、专业、学历、时间、相关课程
-
成绩较优异的同学可选择性备注专业排名
工作经历:
工作经历是简历中相当重要的一部分,它是你过去几年经历的总结。
工作经历需要写的是你做成了什么,注意不是流水账一样去列举你做了什么,最好的是你给公司带来了什么样的贡献和提效。
具体需要写清楚地点、起止时间、职位、承担的工作。
项目经历:
-
项目经验可以写实习项目、学校比赛项目、自己折腾的技术项目,按照时间顺序梳理
-
描述项目背后通用的技术知识的应用实践以及解决问题的思路
-
相关产出,在线文档、博客等
自我总结:
-
描述专业技能,尽可能减少熟练、精通这类字眼
-
简要描述奖学金和其他在校荣誉,如竞赛奖项
-
语言能力,英语、日语或者其他语言均可
巩固基础
注重基础理论的积累,比如css盒模型,布局,过渡与动画,定位这些比较常用的理论。对于javascript,要多熟悉逻辑运算的语法和数组语法,因为很多场景下javascript都在处理逻辑。
学习笔记:
主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue 等等
基础面试题
主要内容包括:HTML,CSS,JavaScript,浏览器,性能优化等等
字节真题训练
CSS 基础
-
请你讲一讲 CSS 的权重和优先级
-
介绍 Flex 布局,flex 是什么属性的缩写:
-
CSS 怎么画一个大小为父元素宽度一半的正方形?
-
CSS实现自适应正方形、等宽高比矩形
-
实现两栏布局的方式
-
实现三列布局的方式
-
CSS 动画有哪些?
-
用css2和css3分别写一下垂直居中和水平居中
-
visibility 和 display 的差别(还有opacity)
-
opacity 可以有过渡效果嘛?
-
BFC 与 IFC 区别
-
BFC会与float元素相互覆盖吗?为什么?举例说明
-
了解box-sizing吗?
-
什么是 BFC
-
了解盒模型吗?
-
说一下你知道的position属性,都有啥特点?
-
两个div上下排列,都设margin,有什么现象?
-
清除浮动有哪些方法?
JavaScript 基础
-
问:0.1 + 0.2 === 0.3 嘛?为什么?
-
JS 数据类型
-
JS 整数是怎么表示的?
-
Number() 的存储空间是多大?如果后台发送了一个超过最大自己的数字怎么办
-
写代码:实现函数能够深度克隆基本类型
-
事件流
-
事件是如何实现的?
-
new 一个函数发生了什么
-
new 一个构造函数,如果函数返回
return {}、return null,return 1,return true会发生什么情况? -
symbol有什么用处
-
闭包是什么?
-
闭包产生的本质
-
一般如何产生闭包
-
闭包的应用场景
-
什么是作用域?
-
什么是作用域链?
-
NaN 是什么,用 typeof 会输出什么?
-
JS 隐式转换,显示转换
-
了解 this 嘛,bind,call,apply 具体指什么
-
手写 bind、apply、call
-
setTimeout(fn, 0)多久才执行,Event Loop
-
手写题:Promise 原理
-
js脚本加载问题,async、defer问题
-
如何判断一个对象是不是空对象?
计算机网络
-
DDOS 攻击
-
http请求过程
-
DNS 域名如何解析的?
-
TCP三次握手
-
为什么要三次握手?
-
为什么HTTP协议要基于TCP来实现?
-
说到三次握手,那在说下四次挥手吧?
-
如果已经建立了连接,但是客户端突然出现故障了怎么办?
-
http请求方式有哪些?
-
常用的请求状态码?
- TCP和UDP的区别以及应用场景
-
UDP
-
TCP
-
应用场景
-
tcp 中拥塞避免和流量控制机制
-
http和https
-
http和https的区别
-
https的访问过程
-
https的优缺点?
-
https如何进行性能优化?
- 说下http缓存吧
-
什么是缓存?又有什么用?
-
你知道有哪些缓存方式吗?
-
缓存位置
-
http缓存怎样生效的
Vue框架
-
active-class是哪个组件的属性?嵌套路由怎么定义?
-
怎么定义vue-router的动态路由?怎么获取传过来的动态参数?
-
vue-router有哪几种导航钩子?
-
scss是什么?在vue.cli中的安装使用步骤是?有哪几大特性?
-
mint-ui是什么?怎么使用?说出至少三个组件使用方法?
-
v-model是什么?怎么使用? vue中标签怎么绑定事件?
-
axios是什么?怎么使用?描述使用它实现登录功能的流程?
-
axios+tp5进阶中,调用axios.post(‘api/user’)是进行的什么操作?axios.put(‘api/user/8′)呢?
-
什么是RESTful API?怎么使用?
文末
逆水行舟不进则退,所以大家要有危机意识。
同样是干到35岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。
这也是为什么大家都说35岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。
为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师核心知识笔记》电子稿文件。
内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。
269页《前端大厂面试宝典》
包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
前端面试题汇总