今年准备去公司混下经验,投了一些简历,经历了N多的电话面试,有必要在这里整理一下,也和大家分享一下。因为,前端的面试经验似乎很少见吧?
面试一般有两部分,技术面试和HR面试。基本技术官经过2~4轮(这个数字因情况而定)后,会安排HR面试,如果你接到了HR的面试,基本上也就可以确定企业对你的技术还是比较满意了,要考察你的RP了,呵呵。
HR的面试很简单。你的个人素质,例如以前的团队领导经验(要求描述一个详细的团队活动以及你在其中的角色)、人文素养(最近读什么书,平常有什么爱好);工资岗位相关,例如你现在在哪个城市、期望的待遇等等。一般来说,只要不是太宅的,都应该能过去的。
这里我详细说说技术面试里的高频问题。感觉还是蛮有趣的问题的。
- DTD的作用
- DTD 规定了使用通用标记语言(SGML)的网页的语法。
诸如 HTML 这样的通用标记语言应该使用 DTD 来规定应用于某种特定文档中的标签的规则,这些规则包括一系列的元素和实体的声明。
在通用标记语言(SGML)的文档类型声明或 DTD 中,XHTML 被详细地进行了描述。
XHTML DTD 使用精确的可被计算机读取的语言来描述合法的 XHTML 标记的语法和句法。XHTML DTD、Recommended Doctype Declarations to use in your Web document - XHTML和HTML区别
- HTML 可以认为是 XML 版本的 HTML,为符合 XML 要求,XHTML 语法上要求更严谨些。
以下是 XHTML 相对 HTML 的几大区别:- XHTML 要求正确嵌套
- XHTML 所有元素必须关闭
- XHTML 区分大小写
- XHTML 属性值要用双引号
- XHTML 用 id 属性代替 name 属性
- XHTML 特殊字符的处理
- 常用的开发流程(工具、方法)
- 涉及到很多知识了。SVN和常用IDE的使用。其中Apatana等工具是重点。常用的调试工具:FF的Firebug、Opera的DragonFly、Safari的开发者工具、IE的开发工具条、Companion.JS、Debugbar甚至是Visual Studio。一些系统开发的瀑布流程。Js里面比较重要的组件式开发等等。
- Javascript优化
- 这个也很多了,这里说一点细节。例如,遍历数组前先取出数组length、禁用eval、禁用with、一个函数体内一次变量申明、尽量使用原生方法等等
- CSS基本布局实现思想
- 这个肯定重要了,两栏、三栏的布局,流动和固定的。并且还要懂得不同的实现方法,很复杂也很枯燥。还好很多人已经总结过一些Css Layout
- 一些浏览器兼容性问题:hasLayout相关,IE怪癖、box model
- 你必须要读的文章:On having layout、Quirks mode and strict mode、CSS权威指南里面对于Box model的讲解、JS权威指南讲浏览器环境的那部分,特别是事件处理和ajax开发
- 基本脚本库:jQuery、YUI
- 熟悉jquery的api,了解基本用法,知道如何创作插件。能了解并学会符合使用yui3更好。整体来说,在面试环节没有强制要求你掌握某一个库
- 网站前端优化(YSlow的一些指标)
- 这个下个YSlow看看就知道。也可以参考《High Performance Web Sites》这本书
- HTML5的特点
- 这个真的没辙,现在市面上书籍很少,中文资料更少。大多数人也没有勇气去阅读w3c的标准文档的。多看看老外的博客吧,当问到这个问题的时候你要清楚那个面试官其实也不太清楚的。主要了解DOM Storage、新的文档遍历API、doctype声明等等
- 如何解决ajax夸域问题
- 这个思路很多的,jsonp、服务器代理、iframe等等
- 内存泄露问题
- 读这篇文章就够了JavaScript 中的内存泄露模式,其实问题主要出在IE。如何测试呢?请查阅javascript 内存泄露工具使用
- 事件代理
- 这个名词当时把我忽悠了。简单的说就是利用事件冒泡把实际处理逻辑委托到一个对象上统一处理。往往是比较上层的对象,比如body节点。这个平常大家都在用,不过这个词不一定熟悉。








