首页常用模板面试问题如何面试WEB前端开发?

如何面试WEB前端开发?

面试前端工程师是一件有趣有意思的事情,因为面试过程很大程度上也是HR自我提升的过程。
一、基本知识 
我们生活在互联网时代,你想知道的任何事情几乎都能在15分钟内找到相关信息。可是,能找到信息并不等于你会使用它。所有前端工程师至少都应该掌握某些基本的知识,才能有效地完成自己的工作。如果一遇到问题,就停下工作上网四处搜索解决方案,怎么可能保证按期完成工作呢?以下列出了一些基本的知识点,这些都是一名前端工程师(无论工作年头长短)在没有任何外来帮助的情况应该知道的。 

[list][*] 

DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。

DOM操作——怎样添加、移除、移动、复制、创建和查找节点。 

事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。 

XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。

严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。 

盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。  

块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。

浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。 

HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。 

JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。 

重申一下,上述这些知识点都应该是应聘者必须要掌握的。这些问题都是想摸清应聘者对所有这些领域知识的掌握程度。虽然上面列出的这些知识点并没有面面俱到,但应聘者至少应该掌握这些,才有可能杀进最后一关。 
二、少量提问 
面试官问的问题越少越好。反复问应聘者各种问题既不公平,也很无聊。在任何一次面试中,通常只问三个大问题,但每个问题又会涉及到多个方面。回答每个大问题一般要经过几个步骤,这样我就可以在每个步骤中穿插着问一些小问题。 

比如说:现在有一个正显示着Yahoo!股票价格的页面。页面上有一个按钮,你可以单击它来刷新价格,但不会重新加载页面。请你描述一下实现这个功能的过程,假设服务器会负责准备好正确的股票价格数据。 这个问题牵扯到一组面试官想要考察的基本知识点:DOM结构、DOM操作、事件处理、XHR和JSON。

如果面试官要求应聘者换一种处理股票价格的方式,或者让应聘者在页面中显示其他信息,就可以把更多的知识点包括进来。对于经验比较丰富的应聘者,面试官也可以自如地扩展要考察的知识范围,最简单像JOSN与XML的区 别、安全问题、容量问题,等等。 



面试官还希望应聘者给出的任何解决方案中都不要使用库。他想看到最原生态的代码,应聘者就当页面中没有包含任何库。应聘者说自己对哪个库了解多少多少,但面试官不能把 关于库的知识作为评判能力的因素,因为库是会随时间变化的。面试官需要的是真正理解库背后的机制,特别是能够徒手写出一个自己的库的人。 
三、解决问题 
做为一名前端工程师,最值得高兴的事莫过于解决同一个问题会有很多种不同的方法,而你要做的就是找出最合适的方法来。面试官在提问的时候,经常会在应聘者解释完一种方法后问他们还有没有第二种方法。此时面试官会跟应聘者说,假设你的这个方法由于种种原因被否决了,那么你还能不能给出另一种方法。这样做可以达到两个目的
首先,可以测试出他们是否在毫无意义地复述书本中的东西。不能不承认,某些人确实有过目不忘的天赋,听他们在那里滔滔不绝地讲,你会觉得他们什么都 明白。可是,只要一跟这些人谈到怎么查找方案无效的原因,以及能否拿出一个新方案来,他们往往就傻眼了。这时候,如果听到“我不明白这个方案为什么不够 好”之类的反问,心里立刻就明白我的问题已经超出了他们的能力范围,而他们只是想拿自己死记硬背的结论来蒙混过关。
其次,可以测试出他们已经掌握的(还是那句话,“想都不用想”)浏览器技术知识。如果他们对浏览器平台的核心知识有较好的理解,想出解决同一问题的不同方案根本没有那么难。 
对一名前端工程师来说,这绝对是最重要的能力。前端工程师在工作中遇到本该如此却并未如此的难题,应该说是一件很平常的事。一个方案无效就无计可施的人,做不了前端工程师。 
考核应聘者解决问题能力的另一层原因,与面试官的个人喜好有关。在搞清楚应聘者知道什么不知道什么之后,面试官就会想着问一个他们知识领域之外的问题。这样做的目的,就是想看看他们怎样运用已有的知识解决新问题。在解决问题的每一步,面试官也准备了一些提示,以防有人会一声不吭。我真正感兴趣的,是他们能够从上一步前进到下一步。他们希望看到一个人就在他们眼前学到新知识。 

四、有激情 

要成为一名优秀的前端工程师,最重要的莫过于对自己做的事要有激情。我们技能都不是从学校中或者从研讨会上学来的,因此前端工程师必须具备自学能力。浏览器技术的变化可谓日新月异,所以也只有不断提升自己的技能才做得到与时俱进。虽然不能强迫谁必须多看博客、不断学习,但想应聘前端工程师的人恐怕还是必须这么做的。 

你怎么知道谁对这种工作有没有激情?实际上非常简单。只问一个简单的问题:“目前你对什么Web技术最感兴趣?”这个问题永远不会过期,而且也几 乎不可能出错……除非应聘者答不上来。就眼下来说,我希望你对这个问题给出的技术中包括WebSocket、HTML、WebGL、客户端数据库,等等。

只有对Web开发充满激情的人,才会坚持不懈地学习新知识、掌握新技能;这些人才是企业真正想要的。当然,面试官会让他们详细解释自己提到的技术,以保证他们不是随 口说了几个时髦的新词汇。 
五、技能扩充
计算机科学或者Web设计方面的知识当然也有用,但那都是基本知识之外的东西。只要基本知识在那儿了,一切就都有了基础,想扩充知识面也不难。可是,如果等到正式上班以后,还得从头学习基本技能,那种难度是不可同日而语的。另外,高级前端工程师与一般工程师相比,肯定需要掌握更多的技能。而面试几乎没有经验大学毕业生,同样也会有一套完全不同的程序。
这是面试WEB前端开发可以采用的五大黄金法则,显然面试官不仅自己要掌握全面专业的基础知识,同时还要用心考察应聘者是否真的德才兼备,也确实是个有意思的事情。