前端开发常见面试试题
面试题是招聘公司和开发者都非常关心的话题,公司希望通过它了解开发者的真实水平和细节处理能力,而开发者希望能够最大程度地展示自己的水平(甚至超常发挥)。中国人才网提供了众多前端开发面试题,无论是招聘方还是应聘方都值得一看!

一般问题
你用Twitter吗?(在天朝最好问你用微博吗?)
如果用,你都关注那些人?
你用Github吗?
如果用,你关注的项目有什么?
你关注的博客有那些?
你使用那些版本管理系统,比如Git,SVN等?
你常用的开发环境是怎样的?比如操作系统,文本编辑器,浏览器,及其他工具等。
你能描述一下你制作一个网页的工作流程吗?
你能描述一下渐进增强和优雅降级之间的不同吗?
如果提到了特性检测,可以加分。
请解释一下什么是语义化的HTML。
你更喜欢在哪个浏览器下进行开发?你使用那些开发人员工具?
你如何对网站的文件和资源进行优化?
期待的解决方案包括:
文件合并
文件最小化/文件压缩
使用CDN托管
缓存的使用
其他
为什么利用多个域名来存储网站资源会更有效?
浏览器一次可以从一个域名下做多少资源?
请说出三种减低页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
如果你接到了一个使用Tab来缩进代码的项目,但是你喜欢空格,你会怎么做?
建议这个项目使用像EditorConfig(http://editorconfig.org)之类的规范
为了保持一致性,转换成项目原有的风格
直接使用VIM的retab命令
请写一个简单的幻灯效果页面
如果不使用JS来完成,可以加分。
你都使用那些工作来测试代码的性能?
例如JSPerf (http://jsperf.com/)
例如Dromaeo (http://dromaeo.com/)
其它。
如果今年你打算熟练掌握一项新技术,那会是什么?
请谈一下你对网页标准和标准制定机构重要性的理解。
什么是FOUC?你如何来避免FOUC?
HTML相关问题
文档类型的作用是什么?你知道多少种文档类型?
浏览器标准模式和怪异模式之间的区别是什么?
使用XHTML的局限有那些?
如果页面使用application/xhtml+xml会有什么问题吗?
如果网页内容需要支持多语言,你会怎么做?
在设计和开发多语言网站时,有哪些问题你必须要考虑?
在HTML5的页面中可以使用XHTML的语法吗?
在HTML5中如何使用XML?
data-属性的作用是什么?
如果把HTML5看作做一个开放平台,那它的构建模块有那些?
请描述一下cookies,sessionStorage和localStorage的区别?
JS相关问题
你使用过那些Javascript库?
你是否研究过你所使用的JS库或者框架的源代码?
什么是哈希表?
undefined变量和undeclared变量分别指什么?
闭包是什么,如何使用它,为什么要使用它?
你喜欢的使用闭包的模式是什么?
请举出一个匿名函数的典型用例?
请解释什么是Javascript的模块模式,并举出实用实例。
如果有提到无污染的命名空间,可以考虑加分。
如果你的模块没有自己的命名空间会怎么样?
你如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?
请指出Javascript宿主对象和内置对象的区别?
指出下列代码的区别:
function Person(){} var person = Person() var person = new Person()
.call和.apply的区别是什么?
请解释Funciton.prototype.bind的作用?
你如何优化自己的代码?
你能解释一下JavaScript中的继承是如何工作的吗?
在什么时候你会使用 // [1,2,3,4,5,1,2,3,4,5]
描述一种JavaScript memoization(避免重复运算)的策略。
什么是三元条件语句?
函数的参数元是什么?
什么是"use strict"?使用它的好处和坏处分别是什么?
JS代码示例:
3.14
问题:上面的语句的返回值是什么? 答案:3
"im a lasagna hog".split("").reverse().join("");
问题:上面的语句的返回值是什么? 答案:"goh angasal a mi"
( window.foo || ( window.foo = "bar" ) );
问题:window.foo的值是什么? 答案:"bar" 只有window.foo为假时的才是上面答案,否则就是它本身的值。
var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);
问题:上面两个alert的结果是什么? 答案: "Hello World" & ReferenceError: bar is not defined
var foo = []; foo.push(1); foo.push(2);
问题:foo.length的值是什么? 答案:2
var foo = {}; foo.bar = hello;
问题:foo.length的值是什么? 答案: undefined
jQuery相关问题
解释"chaining"。
解释"deferreds"。
你知道那些针对jQuery的优化方法。
请解释.end()的用途。
你如何给一个事件处理函数命名空间,为什么要这样做?
请说出你可以传递到jQuery方法的四种不同值。
选择器(字符串),HTML(字符串),回调函数,HTML元素,对象,数组,元素数组,jQuery对象等。
什么是效果队列?
请指出.get(),[],eq(),的区别。
请指出.bing(),.live()和.delegate()的区别。
请指出$和$.fn的区别?或者说出$.fn的用户。
请优化下列选择器:
$(".foo div#bar:eq(0)")
CSS相关问题
描述css reset的作用和用途。
描述下浮动和它的工作原理。
清除浮动的方法有那些,分别适用于什么情形。
解释css sprites,如何使用。
你最喜欢的图片替换方法是什么,你如何选择使用。
讨论CSS hacks,条件引用或者其他。
如何为有功能限制的浏览器提供网页。
你会使用那些技术和处理方法。
如何视觉隐藏网页内容,只让它们在屏幕阅读器中可用。
你使用过网格系统吗?如果使用过,你最喜欢哪种?
你使用过meidia queries(媒体查询)吗,或者移动网站相关的CSS布局。
你熟悉SVG样式的书写吗?
如何优化网页的打印样式。
在书写高效CSS文件时会有哪些问题需要考虑。
你使用CSS预处理器吗?(SASS,Compass,Stylus,LESS)
如果使用,描述你的喜好。
你是否接触过使用非标准字体的设计?
字体服务,Google Webfonts, Typekit,等等。
请解释浏览器是如何根据CSS选择器选择对应元素的。
可选的有趣问题
你编写过的最酷的代码是什么?其中你最自豪的是什么?
你知道HTML5的帮派标志吗?
你是否正在或曾经在一艘船上。(不懂这个幽默)
你使用的开发工具中,你最喜欢的部分是什么?
你有什么业余项目吗?是那种类型的?
解释cornify的重要性?(本题完全摸不到头脑)
在一张纸上,垂直写下ABCDE,然后不用任何代码,将他们到序排列。
静静的看他们是否将纸反转。
海盗还是忍者?
如果是两者的合体,并有恰当理由,可以加分。如果是僵尸猴子海盗加忍者加两分。(注:此题文化差异过大)
如果没有在Web开发,你会做什么?
卡门圣迭哥的隐藏处在哪里?
提示:本题的答案永远是错的。
你最爱的IE特性是什么?
完句填空: Brendan Eich和Doug Crockford是JavaScript的________。
讨论:jQuery是牛逼的库还是最牛逼的库。
web前端开发师面试问答的经历
Q:关于公司的期望
A:我希望第一份工作能有比较大的发展空间,能够长时间的在一个良好的环境中养成良好的习惯。
Q:大学时经历的团队合作
A:最初的时候谁也不知道应该做什么,就从理论上一点一点的抠出东西来,经过两三次的课程我们的固定团队大致有了自己的开发流程,知道怎么样进行相互间的交流沟通、协作,也能从其他团队的汇报中吸取很多经验与教训。有的时候我们团队里会加进比较牛的高人,他也会愿意对我们进行额外的指导,大家一起交流想法,各自说出来,再一起逐一分析优劣,最终定下方案。
Q:关于前端的理解
A:前端开发处于一个猛烈发展的阶段,现在可以说大部分的网站都在关注前端,前端是直接接触用户的部分,它融合了设计、程序还有一些整体的理念,一些优化,包括SEO。很多技术的实现都要通过前端,怎么把这部分做好是非常具有挑战性的事情。可能四五年前很多人都还在标准的实现上摸索,而现在有一个大家都朝着标准走的大方向,就能够更好的坚持,更好的专注,把前端技术做得更强大。
Q:自己的发展计划
A:刚毕业的这一两年希望能专注于技术的提高,和适应良好的工作流程――这也是为什么我希望能够在一个发展环境良好的公司工作,锻炼好实践能力,结合公司的产品需求,当然还有一些不断萌发的新技术。之后会向产品的方向发展,就是前端技术所要实现的目标,因为前端确实是结合很广阔的一个职位。
Q:优缺点
A:我的优点,自己觉得是比较细心,包括细致的观察还有处理细节上的事情。我之前在365日历网实习的时候,还有课程小组学习的时候,他们评价我会说我比较可靠,我觉得可能不是那种技术上特别牛什么问题都能解决的,我个人觉得是来自细心和认真负责的态度。另外后面在九星时代实习的时候,临走上司对我评价是说我抗压学习能力比较强。当时项目特别急,又有涉及到一些我还不熟悉的技术,所有人都在加班,我也是一边完成任务一边不断在学新的东西,进一步的修缮,把事情做得更好。缺点的话,我觉得现在对我影响最大的就是想问题常常会有太多顾虑,想要一次性的把问题解决,结果会浪费很多的时间。比如说技术面试的时候,很经常遇到考官说一个简单的布局设计让你实现,我有的时候就总会考虑一些没有提到的因素,像是否需要适应变化这类的,就是有些过于计较完美,反而变得优柔寡断了。这也是有次面试的时候面试官和我提到的。
Q:待遇要求
A:待遇的话,我觉得并不是很关键,而且我是应届生,我尊重公司对应届生的待遇标准。我也相信网易的竞争力吧。这几次面试后,我在网上查了不少别人的评价,觉得网易作为大门户网站,有很好的环境与发展前景,薪水的话能让自己继续活着工作学习发展就够啦。我
一直认为如果公司发展前景不好,现在给很高的工资也不一定就是好事情,而好的公司能够给出符合员工给自己所创造的价值的工资。
3号(周四)下午,面试的时候HR罗叔叔非常温和,常常笑,说话也不是我想象中HR那种咄咄逼人的语速。问我的问题大约是:
Q:自我介绍包括实习经历
A:如实汇报
Q:面对过什么样的压力
A:我先是很宓乃盗搜数学的事情,后来HR又问,还有其他的吗,我又说了一下做一些课程设计的时候小组遇到的难题,技术和团队协作方面。其实还想说在九星实习的时候的工作压力,后来觉得这个才是HR最想听的,不过没有机会说了……
Q:解决问题的方法
A:技术问题的话,先上网查有没有解决的方法,如果不好解决再去请教前辈,一般还是自己先查一些资料,不想为简单的问题就打扰别人。如果遇到难以解决的问题会请教别人或者和别人一起讨论。这块回答得有点乱。
Q:为什么想留在北京
A:家里人也希望我能够独立,能够做自己喜欢的事情,在广阔的空间里发展。我自己也觉得北京机会更多。我说完HR叔叔还跟着说了一句,确实比如你在福州,不要说福州吧,就算和上海深圳这样的技术发达城市比,确实北京的机会是更多的。
Q:拿过其他公司的offer吗?觉得和其他公司比,网易好在哪里?
A:有过一些,自己不满意的地方,一种是职位不是自己期望的,比如测试或者技术支持,并不是自己第一想要做的事情,我很喜欢前端,也希望自己能在这个领域发展;还有是公司规模不大,像之前HR说的,在网易会有很多个前端工程师来完成一个大任务,我认为这样更能够发挥自己的力量,也能让自己的能力更好的发展,如果在一个小一些的公司,也许做前端的就只有我一个人,发展就会变得狭隘;还有工资问题,有的公司只给出两千五左右的待遇(我没敢说2000,其实之前确实有给我开2000的,怕被HR叔叔鄙视),这样在北京生活会艰难一些。总的还是觉得发展前景很重要。然后HR叔叔就接过话说网易确实有很大的发展空间,而且工资的话我看你在登记表上写的跨度很大(我写的是3000-5000,遵从公司对应届生的薪酬标准),这点网易肯定能够让你满意的。
Q:描述一下你的性格
A:这是我认为我回答得最失败的一个问题,我当时没多想,脱口而出――我性格比较内向,其实我应该说我温柔善良细心负责,之前想了很多关于优缺点的描述,结果也不晓得哪根筋抽抽了,直接说自己内向,接着羞涩的笑笑,接了一句不过我很喜欢和别人讨论问题,觉得一起解决问题是很开心的事情
【前端开发常见面试试题】相关文章:
web前端面试题02-22
web前端面试题及答案_web前端面试题及详细答案04-12
阿里前端大神寒冬谈谈面试与面试题02-13
常见的英文面试题12-30
前端程序员JavaScript面试题02-19
前端开发实习报告08-01
常见.net面试题及答案08-15
iOS开发设计面试试题02-13
web前端开发求职简历01-18
