这里需要回答的问题就是需要考察的重点有哪些?有什么方法能够有效地判断其水平?考察的重点应该包括:
- 对Web标准的理解
- 浏览器差异
- CSS基本功:布局、盒模型、选择器优先级及使用等
- JavaScript 基础、JavaScript面向对象实现原理、闭包机制、作用域
另外,校招和社招的要求是不一样的,校招会更加关注基础知识,而社招会更加关注之前做过的项目情况。
1. 项目相关
面试其实就是根据一个人之前的经历,来判断入职之后将会工作得怎么样,如果以前从没做成过一件事情,凭什么让别人相信以后能做成呢?因此无论哪里的面试都会问之前做过的项目。这里的项目可以是多人协助开发一个产品,也可以是自己个人做过的业余应用,只需介绍 1-2 个就足够了,需要注意的是 1 + 1 != 2,做了两个平庸的项目不如做了一个好项目。
一般来说会问如下几方面的问题:
- 做过最满意的项目是什么?
- 项目背景
- 为什么要做这件事情?
- 最终达到什么效果?
- 你处于什么样的角色,起到了什么方面的作用?
- 在项目中遇到什么技术问题?具体是如何解决的?
- 如果再做这个项目,你会在哪些方面进行改善?
2. 技术相关 – 1 面
技术一面主要判断对基础知识的掌握,主要的问题是:
- 描述一个遇到过的技术问题,你是如何解决的?
- 有没有遇到过很不常见的问题?比如在网上根本搜不到解决方法的?
- 是否设计过通用的组件?
- 请设计一个 Dialog(弹出层) / Suggestion(自动完成) / Slider(图片轮播) 等组件
- 你会提供什么接口?
- 调用过程是怎样的?可能会遇到什么细节问题?
3. 技术相关 – 2 面
技术二面主要判断技术的深度和广度,主要的问题可能包括:
- 你最擅长的技术是什么?
- 你觉得你在这个技术上的水平到什么程度了?你觉得最高级别应该是怎样的?
- 浏览器及性能
- 一个页面从输入 URL 到页面加载完的过程中都发生了什么事情?越详细越好
- 谈一下你所知道的页面性能优化方法?
- 这些优化方法背后的原理是什么?
- 除了这些常规的,你还了解什么最新的方法么?
- 如何分析页面性能?
- 除了前端以外还了解什么其它技术么?
4. 兴趣相关
- 最近在学什么?接下来半年你打算学习什么?
- 做什么方面的事情最让你有成就感?需求设计?规划?具体开发?
- 后续想做什么?3 年后你希望自己是什么水平?
5. 主动性相关
- 在之前做过的项目中,有没有什么功能或改进点是由你提出来的?
- 是否有参与和改进其它开源项目
转载请注明:陈童的博客 » 如何面试前端工程师?