最近很多前端小伙伴在面试,前端学习内容复杂、网上资料良莠不齐,想要靠自己梳理清楚确实不容易,为了帮助想要跳槽进大厂的你在金三银四顺利通过前端面试,总结出这「 400 道前端工程师常考必考面试题+详细解答」于是我翻箱倒柜,把这份蚂蚁金服大牛总结的前端开发归纳笔记找出来。
传说有小伙伴靠这份笔记顺利进入 BAT 哦,所以一定要好好学习这份资料!做下一个靠这份笔记进入BAT的人~(神话传说)
有需要的朋友可以戳此传送门即可获取完整版的 PDF 哦
前端基础293道
1.css3有哪些新特性
2.first-child与first-of-type的区别是
3.解决使用transform:translate属性时会出现闪烁现象
4.如何使用@keyframes使div元素移动200像素
5.如何实现文本换行
6.超出文本省略
7.css3动画如何在动作结束时保持状态不变
8.实现某div元素以每秒50px的速度左移100px
9.说说box-sizing属性
10.如何实现把文本分隔为4列并使两列之间间隔30像素
11.background-clip和background-orgin的区别
12.css3中transition属性值以及含义是
13.当元素不面向屏幕时其可见性如何定义
14.如何实现css3倒影
15.css3实现背景颜色线性渐变
16.为盒子添加蒙版
17.animation属性值有哪些
18.rem的原理是什么
19.如何设置css3文本阴影
20.如何把元素从左侧移动50像素,从顶端移动100像素
21.如何把一个元素旋转30°
22.利用css3制作淡入淡出的动画效果
23.在使用Bootstrap的同时使用地图api,可能会造成Bootstrap与地图冲突,地图显示不出来,如何解决
24.jquery中的deferred的功能
25.什么是deferred对象
26.jquery和jquery ui的区别
27.如何用原生JavaScript实现jquery的ready方法
28.jquery中的attr和prop区别
29.$.map()和$.each()区别
30. jquery中如何将一个jquery对象转化为dom对象
31.jquery中监听事件有几种方式
32.jquery中个get和eq区别
33.jquery中的事件冒泡,怎么执行,如何停止冒泡事件
34.jquery中的hover和toggle区别
35. 你使用过哪些数据格式
36.选择器中id,class有什么区别
37.为了将单选按钮组的第二个选框设置为选中状态,如何设置
38.$.getScript()方法和$.getJson()方法有什么区别
39.jquery或zepto源码有哪些地方觉得不错
40.jQuery中的美元符号
41.onload()函数和ready()函数的区别
42.jQuery中有哪几种常见的选择器
43.使用jQuery将页面上所有元素边框设置为2px宽的虚线
44.使用jQuery实现单击按钮时弹出一个对话框
45.如何使用jquery编码和解码url
46.jquery中的delegate()函数有什么作用
47.如何禁用浏览器的前进和后退按钮
48.网页上有5个<div>元素,如何使用jquery来选择它们
49.如何在单击一个按钮时使用jQuery隐藏一副图片
50. $(document).ready()是什么函数
51.如何找到所有多选下拉框内的选中项
52.如何获取页面中所有多(复)选框内选中选项的内容
53.$(this)和this关键字在jquery中的不同
54.提取链接的href
55.能用jquery代码选择所有在段落内部的超链接吗
56.jquery中的detach()和remove()方法的区别
57.如何利用jquery,来向一个元素添加或移除css类
58.使用cdn加载jquery库的主要优势是什么
59.jQuery.ajax()和jQuery.get()方法之间的区别
60.要是在一个jQuery事件处理程序里返回了false会怎么样
61.document.getElementbyId("myId")和$("#myId")哪个更高效
62.jQuery中的方法链是,使用的好处
63.如何用jquery将一个html元素添加到dom树中
64.你是如何使用jquery中的ajax的
65.页面导入样式时,使用link和@import有什么区别?
66.HTML全局属性(global attribute)有哪些(包含H5)?
67.写一个方法去掉字符串中的空格
68.CSS3有哪些新增的特性?
69.用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值
70.写一个加密字符串的方法
71.浏览器内多个标签页之间的通信方式有哪些?
72.简述下你理解的优雅降级和渐进增强
73.viewport常见设置都有哪些?
74.对比下px、em、rem有什么不同?
75.简要描述下什么是回调函数并写一个例子出来
76.你对标签语义化的理解是什么?
77.在页面上隐藏元素的方法有哪些?
78.去除字符串中最后一个指定的字符
79.HTML5的文件离线储存怎么使用,工作原理是什么?
80.CSS选择器有哪些?哪些属性可以继承?
81.简述超链接target属性的取值和作用
82.CSS3新增伪类有哪些并简要描述
83.label都有哪些作用
84.用css创建一个三角形,并简述原理
85.Iframe 有什么好处,有什么坏处?国内还有哪些知名网站仍用Iframe,为什么?有哪些原来用的现在抛弃了?又是为什么?
86.简述你对BFC规范的理解
87.统计某一字符或字符串在另一个字符串中出现的次数
88.清除浮动的方式有哪些及优缺点?
89.简要描述下JS有哪些内置的对象
90.常见的浏览器内核都有哪些?
91.盒模型的理解
92.html5中的form怎么关闭自动完成?
93.::before和:after中单冒号和双冒号的区别是什么
94.说说你对javascript的作用域的理解
95.http都有哪些状态码?
96.为什么HTML5只需要写<!DOCTYPE HTML>就可以
97.什么是闭包?优缺点分别是什么?
98.写一个数组去重的方法
99.元素的alt和title有什么区别?
100.table的作用和优缺点是什么呢?
101. typeof('abc')和typeof 'abc'都是string, 那么typeof是操作符还是函数?
102.说说你对SVN和GIT的理解和区别
103.什么是FOUC?你是如何避免FOUC的?
104.css的属性content有什么作用呢?
105."attribute"和"property"有什么不同?
106.写一个验证身份证号的方法
107.对于HTML表单输入字段,disabled =“ disabled”和readonly =“ readonly”有什么区别?
108.说说你对line-height是如何理解的?
109.说说你对重绘和重排的理解,以及如何优化?
110.0.1 + 0.2、0.1 + 0.3和0.1 * 0.2分别等于多少?并解释下为什么?
111.new操作符的理解是什么?手动实现一个new方法
112.jquery中是如何操作类的
113.使用jQuery中的动画
114.单击超链接后自动跳转,单击“提交”按钮后表单会提交等,有时候,为了阻止默认行为,怎么办
115.你使用什么方法提交数据
116.在ajax中获取数据的主要有几种方式
117.jquery中使用过哪些插入节点的方法
118.在jquery中,如何获取或者设置属性?如何删除属性
119.如何设置和获取html以及文本的值
120.说说<script>、<script async>和<script defer>的区别
121.说说你对z-index的理解
122.包裹节点的方法有哪些?用包裹节点方法的好处?
123.如何实现自适应布局
124.在移动端如何做好用户体验
125.如何解决长时间按住页面出现闪退的问题
126.解决iPhone以及iPad输入框的默认内阴影的问题
127.如何解决安卓手机圆角失效问题
128.如何解决ios设置中input按钮样式会被默认样式覆盖的问题
129.如何解决移动端click事件有300ms延迟问题
130.如何解决移动端html5中的date类型的input标签不支持placeholder属性的问题
131.如何禁止复制或选中文本
132.解决上下拖动滚动条时的卡顿问题
133.说说XHTML
134.为什么10.toFixed(10)会报错?
135.DOM和BOM有什么区别?
136.验证码是为了解决什么问题?
137.写一个获取数组的最大值、最小值的方法
138.css的权重计算规则
139.输入 URL 到页面展示
140.rgba()和opacity
141.对arguments的理解,它是数组吗?
142.说说bind、call、apply的区别?并手写实现一个bind的方法
143.说说你对this的理解
144.如何解决块属性标签浮动后,在设置水平margin的情况下,在ie6中显示的margin比设置的大的问题。
145.页面中的图片元素为什么默认具有间距。
146.怎么实现盒模型
147.如何解决li元素内出现浮动元素时产生间隙的问题
148.如何让长单词以及较长的url转换
149.如何解决display:inine-block在ie6,ie7下不兼容的问题
150.如何解决ie6不支持position:fixed属性的问题
151.如何获取自定义属性数据
152.说说event.srcElement兼容问题
153.说说body载入问题
154.如何实现元素水平居中
155.如何让p元素垂直居中
156.margin的加倍问题
157.如何解决ie6下图片有空隙的问题
158.如何让文本与文本输入框对齐
159.解决ie无法设置滚动条颜色的问题
160.解决form标签边距兼容性问题
161.构造函数的特点
162.javascript中继承的实现方法
163.如何通过new构造对象。
164.面向对象的特性
165.面向对象编程三大特点概述
166.this通常的指向
167.实现对象的继承
168.JSONP实现跨域
169.ajax请求
170.异步加载的方式
前端核心40道
1. 简述一下你对 HTML 语义化的理解?
2. 标签上 title 与 alt 属性的区别是什么?
3. iframe的优缺点?
4. 介绍一下 CSS 的盒子模型?
5. 垂直居中几种方式?
6. rgba和opacity的透明效果有什么不同?
7. position的值, relative和absolute分别是相对于谁进行定位的?
8. HTML5、CSS3 里面都新增了哪些新特性?
9. BFC 是什么?
10. 常见兼容性问题?
11. JS 数据类型 ?
12. 判断一个值是什么类型有哪些方法?
13. null 和 undefined 的区别?
14. 怎么判断一个变量arr的话是否为数组(此题用 typeof 不行)?
15. 箭头函数有哪些特点?
16. new操作符具体干了什么呢?
17. documen.write 和 innerHTML 的区别?
18. ajax过程?
19. 请解释一下 JavaScript 的同源策略?
20. 介绍一下闭包和闭包常用场景?
21. javascript的内存(垃圾)回收机制?
22. 谈谈你对MVVM开发模式的理解?
23. v-if 和 v-show 有什么区别?
24. 你使用过 Vuex 吗?
25. 说说你对 SPA 单页面的理解,它的优缺点分别是什么?
26. Class 与 Style 如何动态绑定?
27. 怎样理解 Vue 的单向数据流?
28. ***puted 和 watch 的区别和运用的场景?
29. 直接给一个数组项赋值,Vue 能检测到变化吗?
30. 谈谈你对 Vue 生命周期的理解?
31. Vue 的父组件和子组件生命周期钩子函数执行顺序?
32. 父组件可以监听到子组件的生命周期吗?
33. Vue 框架怎么实现对象和数组的监听?
34. Vue 是如何实现数据双向绑定的?
35. Vue 怎么用 vm.$set() 解决对象新增属性不能响应的问题
36. 虚拟 DOM 的优缺点?
37. 虚拟 DOM 实现原理?
38. Vue 中的 key 有什么作用?
39. 你有对 Vue 项目进行哪些优化?
40. 对于 vue3.0 特性你有什么了解的吗?
由于篇幅展示有限,完整答案已经打包完毕,希望对大家有帮助!
有需要的朋友可以戳此传送门即可获取完整版的 PDF 哦
前端进阶61道
Node 模块机制
1、请介绍一下 node 里的模块是什么
2 、请介绍一下 require 的模块加载机制
3、加载模块时,为什么每个模块都有__dirname,__filename 属性呢,new Module 的时候我们看到 1.1 部分没有这两个属性的,那么这两个属性是从哪里来的
4、我们知道 node 导出模块有两种方式,一种是 exports.xxx=xxx 和 Module.exports={}有什么区别吗
Node 的异步 I/O
1、 请介绍一下 Node 事件循环的流程
2 、在每个 tick 的过程中,如何判断是否有事件需要处理呢?
3 、请描述一下整个异步 I/O 的流程
V8 的垃圾回收机制
1、如何查看 V8 的内存使用情况
2、V8 的内存限制是多少,为什么 V8 这样设计
3、V8 的内存分代和回收算法请简单讲一讲
- 新生代
- 老生代
- 标记清楚算法的问题
- 哪些情况会造成 V8 无法立即回收内存
- 请谈一下内存泄漏是什么,以及常见内存泄漏的原因,和排查的方法
Buffer 模块
1、新建 Buffer 会占用 V8 分配的内存吗
2、Buffer.alloc 和 Buffer.allocUnsafe 的区别
3、Buffer 的内存分配机制
4、Buffer 乱码问题
webSocket
1、webSocket 与传统的 http 有什么优势
2、webSocket 协议升级时什么,能简述一下吗?
https
1、https 用哪些端口进行通信,这些端口分别有什么用
2、身份验证过程中会涉及到密钥, 对称加密,非对称加密,摘要的概念,请解释一下
3、为什么需要 CA 机构对证书签名
4、https 验证身份也就是 TSL/SSL 身份验证的过程
进程通信
1、请简述一下 node 的多进程架构
2、请问创建子进程的方法有哪些,简单说一下它们的区别
3、请问你知道 spawn 在创建子进程的时候,第三个参数有一个 stdio 选项吗,这个选项的作用是什么,默认的值是什么。
4、请问实现一个 node 子进程被杀死,然后自动重启代码的思路
5、在 7.4 的基础上,实现限量重启,比如我最多让其在 1 分钟内重启 5 次,超过了就报警给运维
6、如何实现进程间的状态共享,或者数据共享
中间件
如果使用过 koa、egg 这两个 Node 框架,请简述其中的中间件原理,最好用代码表示一下
以上就是前端必考400道题及答案,由于篇幅展示有限,完整版已经打包完毕,有需要的朋友可以戳此传送门即可获取完整版的 PDF 哦