为了准备对校招生进行摸底面试,搜集了一些前端相关的面试题目,以后会继续补充进来。
前端开发面试题
目录
HTML
Doctype 作用?严格模式与混杂模式如何区分?它们有何意义?
HTML5 为什么只需要写 <!DOCTYPE HTML>?
行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
页面导入样式时,使用 link 和@import 有什么区别?
介绍一下你对浏览器内核的理解?
常见的浏览器内核有哪些?
html5 有哪些新特性、移除了那些元素?如何处理 HTML5 新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
简述一下你对 HTML 语义化的理解?
HTML5 的离线储存怎么使用,工作原理能不能解释一下?
浏览器是怎么对 HTML5 的离线储存资源进行管理和加载的呢?
请描述一下 cookies,sessionStorage 和 localStorage 的区别?
iframe 有那些缺点?
Label 的作用是什么?是怎么用的?(加 for 或 包裹)
HTML5 的 form 如何关闭自动完成功能?
如何实现浏览器内多个标签页之间的通信? (阿里)
webSocket 如何兼容低浏览器?(阿里)
页面可见性(Page Visibility API) 可以有哪些用途?
如何在页面上实现一个圆形的可点击区域?
实现不使用 border 画出 1px 高的线,在不同浏览器的 Quirksmode 和 CSSCompat 模式下都能保持同一效果。
网页验证码是干嘛的,是为了解决什么安全问题?
title 与 h1 的区别、b 与 strong 的区别、i 与 em 的区别?
CSS
介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型有什么不同的?
CSS 选择符有哪些?哪些属性可以继承?
CSS 优先级算法如何计算?
CSS3 新增伪类有那些?
如何居中 div?如何居中一个浮动元素?如何让绝对定位的 div 居中?
display 有哪些值?说明他们的作用。
position 的值 relative 和 absolute 定位原点是?
CSS3 有哪些新特性?
请解释一下 CSS3 的 Flexbox(弹性盒布局模型),以及适用场景?
用纯 CSS 创建一个三角形的原理是什么?
css 多列等高如何实现?
一个满屏 品 字布局 如何设计?
经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用 hack 的技巧 ?
li 与 li 之间有看不见的空白间隔是什么原因引起的?有什么解决办法?
为什么要初始化 CSS 样式?
absolute 的 containing block 计算方式跟正常流有什么不同?
CSS 里的 visibility 属性有个 collapse 属性值是干嘛用的?在不同浏览器下以后什么区别?
position 跟 display、margin collapse、overflow、float 这些特性相互叠加后会怎么样?
对 BFC 规范(块级格式化上下文:block formatting context)的理解?
CSS 权重优先级是如何计算的?
请解释一下为什么需要清除浮动?清除浮动的方式
zoom:1 的清楚浮动原理?
移动端的布局用过媒体查询吗?
使用 CSS 预处理器吗?喜欢那个?
CSS 优化、提高性能的方法有哪些?
浏览器是怎样解析 CSS 选择器的?
在网页中的应该使用奇数还是偶数的字体?为什么呢?
margin 和 padding 分别适合什么场景使用?
抽离样式模块怎么写,说出思路,有无实践经验?[阿里航旅的面试题]
元素竖向的百分比设定是相对于容器的高度吗?
全屏滚动的原理是什么?用到了 CSS 的那些属性?
什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的 IE?
视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再次出现,和只出现一次分别怎么做?)
::before 和 :after 中双冒号和单冒号 有什么区别?解释一下这 2 个伪元素的作用。
如何修改 chrome 记住密码后自动填充表单的黄色背景 ?
你对 line-height 是如何理解的?
设置元素浮动后,该元素的 display 值是多少?(自动变成 display:block)
怎么让 Chrome 支持小于 12px 的文字?
让页面里的字体变清晰,变细用 CSS 怎么做?(-webkit-font-smoothing: antialiased;)
font-style 属性可以让它赋值为“oblique” oblique 是什么意思?
position:fixed;在 android 下无效怎么处理?
如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)
display:inline-block 什么时候会显示间隙?(携程)
overflow: scroll 时不能平滑滚动的问题怎么处理?
有一个高度自适应的 div,里面有两个 div,一个高度 100px,希望另一个填满剩下的高度。
png、jpg、gif 这些图片格式解释一下,分别什么时候用。有没有了解过 webp?
什么是 Cookie 隔离?(或者说:请求资源的时候不要让它带 cookie 怎么做)
style 标签写在 body 后与 body 前有什么区别?
什么是 CSS 预处理器 / 后处理器?
rem 布局的优缺点
JavaScript
介绍 JavaScript 的基本数据类型。
说说写 JavaScript 的基本规范?
JavaScript 原型,原型链 ? 有什么特点?
JavaScript 有几种类型的值?(堆:原始数据类型和 栈:引用数据类型),你能画一下他们的内存图吗?
Javascript 如何实现继承?
Javascript 创建对象的几种方式?
Javascript 作用链域?
谈谈 this 对象的理解。
eval 是做什么的?
什么是 window 对象? 什么是 document 对象?
null,undefined 的区别?
写一个通用的事件侦听器函数(机试题)。
[“1”, “2”, “3”].map(parseInt) 答案是多少?
关于事件,IE 与火狐的事件机制有什么区别? 如何阻止冒泡?
什么是闭包(closure),为什么要用它?
javascript 代码中的”use strict”;是什么意思 ? 使用它区别是什么?
如何判断一个对象是否属于某个类?
new 操作符具体干了什么呢?
用原生 JavaScript 的实现过什么功能吗?
Javascript 中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
对 JSON 的了解?
[].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) })
能解释一下这段代码的意思吗?js 延迟加载的方式有哪些?
Ajax 是什么? 如何创建一个 Ajax?
同步和异步的区别?
如何解决跨域问题?
页面编码和被请求的资源编码如果不一致如何处理?
服务器代理转发时,该如何处理 cookie?
模块化开发怎么做?
AMD(Modules/Asynchronous-Definition)、CMD(Common Module Definition)规范区别?
requireJS 的核心原理是什么?(如何动态加载的?如何避免多次加载的?如何
缓存的?)JS 模块加载器的轮子怎么造,也就是如何实现一个模块加载器?
谈一谈你对 ECMAScript6 的了解?
ECMAScript6 怎么写 class,为什么会出现 class 这种东西?
异步加载的方式有哪些?
documen.write 和 innerHTML 的区别?
DOM 操作——怎样添加、移除、移动、复制、创建和查找节点?
.call() 和 .apply() 的作用和区别?
数组和对象有哪些原生方法,列举一下?
JS 怎么实现一个类。怎么实例化这个类
JavaScript 中的作用域与变量声明提升?
如何编写高性能的 Javascript?
那些操作会造成内存泄漏?
JQuery 的源码看过吗?能不能简单概况一下它的实现原理?
jQuery.fn 的 init 方法返回的 this 指的是什么对象?为什么要返回 this?
jquery 中如何将数组转化为 json 字符串,然后再转化回来?
jQuery 的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?
jquery.extend 与 jquery.fn.extend 的区别?
jQuery 的队列是如何实现的?队列可以用在哪些地方?
谈一下 Jquery 中的 bind(),live(),delegate(),on()的区别?
JQuery 一个对象可以同时绑定多个事件,这是如何实现的?
是否知道自定义事件。jQuery 里的 fire 函数是什么意思,什么时候用?
jQuery 是通过哪个方法和 Sizzle 选择器结合的?(jQuery.fn.find()进入 Sizzle)
针对 jQuery 性能的优化方法?
Jquery 与 jQuery UI 有啥区别?
JQuery 的源码看过吗?能不能简单说一下它的实现原理?
jquery 中如何将数组转化为 json 字符串,然后再转化回来?
jQuery 和 Zepto 的区别?各自的使用场景?
针对 jQuery 的优化方法?
Zepto 的点透问题如何解决?
jQueryUI 如何自定义组件?
需求:实现一个页面操作不会整页刷新的网站,并且能在浏览器前进、后退时正确响应。给出你的技术实现方案?
如何判断当前脚本运行在浏览器还是 node 环境中?(阿里)
移动端最小触控区域是多大?
jQuery 的 slideUp 动画 ,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,该如何处理呢?
把 Script 标签 放在页面的最底部的 body 封闭之前 和封闭之后有什么区别?浏览器会如何解析它们?
移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时?(click 有 300ms 延迟,为了实现 safari 的双击事件的设计,浏览器要知道你是不是要双击操作。)
知道各种 JS 框架(Angular, Backbone, Ember, React, Meteor, Knockout…)么? 能讲出他们各自的优点和缺点么?
Underscore 对哪些 JS 原生对象进行了扩展以及提供了哪些好用的函数方法?
解释 JavaScript 中的作用域与变量声明提升?
那些操作会造成内存泄漏?
JQuery 一个对象可以同时绑定多个事件,这是如何实现的?
Node.js 的适用场景?
(如果会用 node)知道 route, middleware, cluster, nodemon, pm2, server-side rendering 么?
解释一下 Backbone 的 MVC 实现方式?
什么是“前端路由”?什么时候适合使用“前端路由”? “前端路由”有哪些优点和缺点?
知道什么是 webkit 么? 知道怎么用浏览器的各种工具来调试和 debug 代码么?
如何测试前端代码么? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
前端 templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?
简述一下 Handlebars 的基本用法?
简述一下 Handlerbars 的对模板的基本处理流程, 如何编译的?如何缓存的?
用 js 实现千位分隔符?(来源:前端农民工,提示:正则+replace)
检测浏览器版本版本有哪些方式?
What is a Polyfill?
做的项目中,有没有用过或自己实现一些 polyfill 方案(兼容性处理方案)?
我们给一个 dom 同时绑定两个点击事件,一个用捕获,一个用冒泡。会执行几次事件,会先执行冒泡还是捕获?
使用 JS 实现获取文件扩展名?
Webpack 热更新实现原理?
请介绍一下 JS 之事件节流?
什么是 JS 的函数防抖?
ECMAScript6 相关
Object.is() 与原来的比较操作符“ ===”、“ ==”的区别?
ES6 是如何实现编译成 ES5 的?
css-loader 的原理?
前端框架
React 使用场景?
描述一下 React 生命周期
实现组件有哪些方式?
应该在 React 生命周期的什么阶段发出 ajax 请求,为什么?
shouldComponentUpdate 函数有什么作用?
当组件的 setState 函数被调用之后,发生了什么?
为什么循环产生的组件中要利用上 key 这个特殊的 prop?
React-router 路由的实现原理?
说说 React Native,Weex 框架的实现原理?
受控组件(Controlled Component)与非受控组件(Uncontrolled Component)的区别
refs 是什么?
React 为什么自己定义一套事件体系呢,与浏览器原生事件体系有什么关系?
什么时候应该选择用 class 实现一个组件,什么时候用一个函数实现一个组件?
什么是 HoC(Higher-Order Component)?适用于什么场景?
并不是父子关系的组件,如何实现相互的数据通信?
用过 React 技术栈中哪些数据流管理库?
Redux 是如何做到可预测呢?
Redux 将 React 组件划分为哪两种?
Redux 是如何将 state 注入到 React 组件上的?
请描述一次完整的 Redux 数据流
React 的批量更新机制 BatchUpdates?
React 与 Vue,各自的组件更新进行对比,它们有哪些区别?
其他问题
原来公司工作流程是怎么样的,如何与其他人协作的?如何跨部门合作的?
你遇到过比较难的技术问题是?你是如何解决的?
设计模式 知道什么是 singleton, factory, strategy, decrator 么?
常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?
页面重构怎么操作?
列举 IE 与其他浏览器不一样的特性?
99%的网站都需要被重构是那本书上写的?
什么叫优雅降级和渐进增强?
是否了解公钥加密和私钥加密。
WEB 应用从服务器主动推送 Data 到客户端有那些方式?
对 Node 的优点和缺点提出了自己的看法?
你有用过哪些前端性能优化的方法?
http 状态码有那些?分别代表是什么意思?
一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?(流程说的越详细越好)
部分地区用户反应网站很卡,请问有哪些可能性的原因,以及解决方法?
从打开 app 到刷新出内容,整个过程中都发生了什么,如果感觉慢,怎么定位问题,怎么解决?
第一次访问页面中时弹出引导,用户关闭引导,之后再次进入页面时不希望出现引导,如何实现?
除了前端以外还了解什么其它技术么?你最最厉害的技能是什么?
你用的得心应手用的熟练地编辑器&开发环境是什么样子?
对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?
你怎么看待 Web App 、hybrid App、Native App?
你移动端前端开发的理解?(和 Web 前端开发的主要区别是什么?)
产品进行版本升级时,可能发生不兼容性问题,如何提前预防和解决?
你对加班的看法?
平时如何管理你的项目?
说说最近最流行的一些东西吧?常去哪些网站?
如何设计突发大规模并发架构?
说说最近最流行的一些东西吧?常去哪些网站?
是否了解开源的工具 bower、npm、yeoman、grunt、gulp,一个 npm 的包里的 package.json 具备的必要的字段都有哪些?(名称、版本号,依赖)
每个模块的代码结构都应该比较简单,且每个模块之间的关系也应该非常清晰,随着功能和迭代次数越来越多,你会如何去保持这个状态的?
Git 知道 branch, diff, merge 么?
如何设计突发大规模并发架构?
当团队人手不足,把功能代码写完已经需要加班的情况下,你会做前端代码的测试吗?
说说最近最流行的一些东西吧?平时常去哪些网站?
知道什么是 SEO 并且怎么优化么? 知道各种 meta data 的含义么?
移动端(Android IOS)怎么做好用户体验?
简单描述一下你做过的移动 APP 项目研发流程?
你在现在的团队处于什么样的角色,起到了什么明显的作用?
你认为怎样才是全端工程师(Full Stack developer)?
介绍一个你最得意的作品吧?
你有自己的技术博客吗,用了哪些技术?
对前端安全有什么看法?
是否了解 Web 注入攻击,说下原理,最常见的两种攻击(XSS 和 CSRF)了解到什么程度?
项目中遇到国哪些印象深刻的技术难题,具体是什么问题,怎么解决?。
最近在学什么东西?
你的优点是什么?缺点是什么?
如何管理前端团队?
最近在学什么?能谈谈你未来 3,5 年给自己的规划吗?
前端学习网站推荐
1. 极客标签: http://www.gbtags.com/
2. 码农周刊: http://weekly.manong.io/issues/
3. 前端周刊: http://www.feweekly.com/issues
4. 慕课网: http://www.imooc.com/
5. div.io: http://div.io
6. Hacker News: https://news.ycombinator.com/news
7. InfoQ: http://www.infoq.com/
8. w3cplus: http://www.w3cplus.com/
9. Stack Overflow: http://stackoverflow.com/
10.w3school: http://www.w3school.com.cn/
11.mozilla: https://developer.mozilla.org/zh-CN/docs/Web/