面试Javascript工程师难吗?Javascript工程师的水平参差不齐,怎么样评定他们技术水平的高低?怎么样确定Javascript工程师合适承担哪一点的任务?我在腾讯时的面试经验是,通过不同纬度的结构化问题、由浅入深的进行考查。
基础
冒泡与捕获:它们的概念,它们有什么区别,怎么样阻止冒泡?入门知识,经典题目。但不是每一个人都能完整全方位的回答出这个问题,面试者需要对DOM tree有我们的理解。
闭包:闭包是一个非常不错的面考试试题目,可以非常不错的考查出不同水平的面试者。知道什么是闭包、怎么用闭包、闭包的原理、闭包的真正原理,只有对JS有哪些用途域链、垃圾收购机制有深入知道的工程师才能正确无误的完整回答这个问题。
工具库
jQuery:考查编程习惯和经验。jQuery作为目前用最为广泛而且最简单的JS库,可以非常不错的测出用户的开发经验和JS水平。一个有着真正开发经验的工程师,应当能正确的写出各类型型的选择器,回答为何用bind来进行事件绑定、mou网站优化ver和mouseenter有什么区别。假如这类考不倒他,别急,live办法的达成原理、ready办法的达成机制这两个问题足以考查出他对DOM、浏览器差异的认识。
extJS、YUI、Prototype:这类工具库或框架都有各自的特征,可以使用像上面类似的问题从浅入深进行知道。
实质问题
解决实质问题考查的是你把常识融会贯通的能力、解决问题的能力、理解能力与学习力,这对综合素质的考查是一种非常不错的方法。首次面对一个问题,面试者是不是能飞速给出思路、由过程推导出结果,能否在一些提示下一步步得到最后的完整答案,这都是非常不错的考察点。
AuTOPager:自动翻页功能是一个由浅入深考查面试者能力的好例子。对滚动条事件的认知,pageHeight、windowHeight、scrollY有什么区别和关系是两个重点,而最后对于事件的clearTimeout高雅处置是隐藏的考查点。Lazyloader:很多人见过图片延迟加载的商品,但他们是不是有知道过背后的达成原理?从功能抽象到具体达成,onresize的考虑、延迟触发的考虑,这道题目有肯定困难程度,和上面的例子也有肯定相似之处。
经过了前三个方面的认知,你应该已经对这个面试者的基本水平有了一个大致的判断。下面的步骤可以叫你知道这个人可以承担哪种工作,他的进步潜力多大。
项目
通过之前的项目历程可以认识他的Team work能力、解决问题的能力,在项目中的角色和承担的责任也可以反衬他的个人能力。
假如他没做过跨浏览器开发,那样这种需要长期积累的任务就不合适分派给他来解决;假如他过去有浏览器插件的开发历程,那样浏览器App的工作或许可以借助他的现有经验;假如他用过jQuery Mobile、sencha touch或者XUI,那样他可能合适开发移动Web App。作为管理者高明的地方在于,把适合的人用在适合的地方。
技术视线
具备技术视线的人一般具备非常大的进步潜力,他们将来不会仅仅只不过一个普通的工程师,而或许会成长为技术专家或者技术管理者。在HTML5方面应当对新的语义标签、Canvas、Webworker、Drag Drop有所经验或者知道;在CSS3方面,应当多少尝试过Radius、Gradient、Transform。当然,假如可以知道Mask,甚至可以了解Flexible Box怎么使用和原理,那样这个人对盒子模型的理解和对新常识的学习力可以得到非常不错的体现。
JS开发工程师是最易的职位,也是最难的职位。新的技术和框架层出不穷、浏览器版本日新月异、愈加多API的出现,好的JS开发工程师需要随时学习和更新很多常识,包含后台(Webworker、Websocket、Node.js)、UI(Canvas、Transparent)、动画(Transform、Transition、Animation)等方面。面试者是不是有自我更新意识,他的技术视线多高决定了他可以涵盖的范围多大,他的将来进步潜力多大。
假如可以把以上所有问题了解、顺利的回答完整,我相信他的表达能力、交流能力应该是相当出色的,同时值得欣喜的是,大家又找到了一位出色的同伴。
欢迎转载,本文版权归于杭州网站制作(http://www.zjteam.com)