转眼人到中年:前端老程序员无法忘怀的一次百度电话面试

18,707

等待,山雨欲来

2010年9月22日,中秋,记得那天下着零星的小雨。大部分同学都已回了家,深秋的校园显得格外空旷寂寥。平时车来人往的校道,也只剩三三两两的行人低着头走着。

匆匆忙忙吃完早餐,一个人背着书包来到了教学楼,找了僻静的角落坐下。看看手机,8:45左右,离电话面试还有大概15分钟。心里有些紧张,毕竟是大厂的面试,要求肯定很严格,不知道待会会问什么问题。内心突然有些懊恼,应该提前多做些功课的。

如期而至的电话

时间一分一秒地流逝,心跳越来越快。9点整,上海的电话如期打来。双方确认了身份后,连自我介绍都不用,直接就进入了技术面试环节。有点出乎意料,在我彼时的设想里,第一个环节应该是自我介绍才对。

没有太多的时间去诧异,电话那头,面试题一个接一个地抛了过来。我把耳机听筒紧紧地贴着耳朵,生怕听不清面试的题目,或者错过关键的信息。其时,脑子飞快地转着,想着如何回答面试官的题目,以及怎么更有条理地组织我的回答。

“JS是如何实现继承的?”

“知不知道什么是跨域?什么情况下会出现跨域?有哪些解决方案?”

“说说你对标签语义化的了解。”

。。。

脑子里一直嗡嗡响,也不知道过了多长时间,面试官突然安静了下来。顿了大约有10秒,那边说:“技术的问题也问得差不多了,就先到这里。你这边有没有什么问题想问的?”

我如释重负,赶紧喘了口气,然后问了几个我之前已经准备好的问题,包括面试部门的工作,员工培训机制,学习建议等,面试官也一一解答。

也许就要结束了

面试终于要结束了,一直紧绷着的神经开始松弛下来,人反而紧张了起来。毕竟,后面还有生死未卜的两周在等待着我,而未知总是让人感到恐惧。

接下来,就是我最想听到的那句收尾的话了。

面试官:“那么,面试就先到这里,今天是周末,一个多小时的面试,辛苦你啦。面试结果会在两周之内反馈到你这边。”

周末,还是中秋,仔细想来,也是为了迁就我的时间,面试官才不得不在这么特殊的时间到公司加班。而且面试过程中,面试官挺nice的,并不是预想中高高在上冷冰冰的态度。

面试官的“辛苦你啦”让我有点小内疚,赶紧回道:“挺不好意思的,因为我这边时间的原因,辛苦您周末过来公司加班。中秋节快乐。”

具体怎么说的记不清了,只记得当时态度很真诚,并不是因为客套。

面试官听到我的回答后,明显楞了一下,似乎有些意外。同样祝我节日快乐后,电话那头安静了一会,只有偶尔轻轻的键盘敲击声。

当幸福来敲门

感觉过了好长时间,其实也可能只有十来秒。听筒里再次传来面试官的声音,不知道是不是心理作用,感觉面试官的语调跟之前有些不同。

“这样,我提前把面试结果告诉你,你一面通过了。在你之前也面了好多人,到目前为止,你是回答得最好的。二面具体时间稍后通知。加油哦,好好准备下一轮面试。”

幸福来得太突然,感觉握着电话的手都在微微颤抖。

“非常感谢,我一定好好准备。”

直到现在,我还不知道为什么面试官突然决定提前告诉我面试结果。也许,陌生面试者的一句“中秋节快乐”,触动了在他乡拼搏的年轻游子的心。

一切无从求证,记忆也终将随时间淡去,在那个下着蒙蒙细雨的清晨。

技术面的问题

一个多小时的面试,问了很多问题,事后稍事整理记录了下来,主要是围绕JavaScript展开。

JS部分:

  1. JS是如何实现继承的?
  2. object的prototype是什么?(接上一个问题)
  3. JS如何实现数据以及功能的封装。(即类是如何实现的)
  4. 如果一个标签里面包含了10000个image,如何有效地对这10000个image实现事件绑定,比如说click事件。(考察事件冒泡机制)
  5. 假设现在有对象A、B,A对象绑定了S事件,如何对B对象也绑定S事件?(其实不清楚)
  6. 如何实现跨域请求?你知道的有多少种方法?各有什么优缺点?
  7. 当使用隐藏框架实现跨域请求时,如果框架页跟当前页不属于同个父域,是否可以实现跨域?
  8. 如何实现私有变量?说出一种方法即可。
  9. 函数闭包使用得多吗?什么情况下需要使用函数闭包?
  10. 当某个事件发生时,如果获得事件发生的对象。(ff和ie不同)
  11. 当绑定事件时,this指针指向的是?
  12. 当为document绑定事件时,this指针指向的是?
  13. 发送ajax请求有多少个步骤?如何判定发送成功?(readyState和onreadystatechange)
  14. 表示请求成功返回的状态码是多少?你还知道哪些状态码?分别表示什么意思?

jQuery部分:

  1. jQuery里如何绑定事件?有多少种方式?
  2. jQuery绑定事件时,this指针指向的是?(dom对象还是jQuery对象)
  3. 对于页面中暂时不存在的对象,如果进行事件绑定?
  4. 为什么选用jQuery框架(言下之意就是还有哪些其他的框架,各有什么优缺点,即你对比之后选择的原因)
  5. 有没有考虑过jQuery UI?如何对jQuery UI的样式进行定制?
  6. 有没有自己写作jQuery插件(即如何写jQuery插件)

html+CSS:

  1. 用html+CSS实现这样的布局效果,左栏固定宽度,右栏宽度自适应并填满剩下空间。
  2. 说说<strong>标签和<b>标签的区别,如果让你选择,你会选择使用哪个?
  3. 说说你对对html标签语义化的理解。

后记:关于二面

大约一周后,接到了二面的电话。面试的结果有点出乎意料,那种惊讶,夹杂着莫名其妙的情绪,至今还无法忘怀。

故事有点长,未完待续。