2016.3.18,星期五。我经历了我的第一次面试。
不得不说,百度是一个高效的公司,在短短一下午之间我就直接经历了一面二面,说没有压力是假的,还记得在中途等待二面的时候我至少有一小段的时间脑子是卡带的。
一面之技术面:
说来是庆幸的,无意中得知一面的面试官是我的直系师兄,刚毕业一年,在百度实习并拿到了offer。人很亲和,一直叫我不要紧张,可是说完全不紧张那是假的。然而是师兄也并没有什么用,刚出了电梯到一间会议室,就直接对我说“那我们开始进入正题吧,我要对你做一些知识上的考核”。面试就这样开始了...
整个面试过程中主要考核的是前端重点的三大技术:HTML、CSS、JS。整个提问过程中也依照这样的顺序依次扩展相关的知识点。(详细答案赘述,只记下所遇到的问题)
HTML部分:
1.在HTML中所有的元素分为两大类:块级元素和行内元素。那么请各举出几个例子,并说说块级元素和行内元素各自的特点以及区别?
2.有用过HTML5的新技术么?举例说一下
(因为我有说到离线存储技术相关的:localStorage和sessionStorage,于是就问了下一个问题)
3.说一下localStorage和sessionStorage它们和cookie的区别?
(与cookie的有聊很多,就全部写在这里)
4.那cookie的作用是干什么的?(因为我的项目里面有用到fetch技术传输数据,fetch有一个坑就是“fetch请求默认不带cookie”)怎样可以隔离cookie?隔离cookie之后有什么后果?
5.(就一直由cookie聊到了跨域)跨域会有什么后果?(这里面试官一直是引导式的提问,有时还会告诉你从哪些方面思考,感觉这主要考察思维能力和分析问题能力)你说说一般哪些标签或属性可以实现跨域?
CSS部分:
1.定位是CSS的一个重要作用,我们来聊一聊定位的相关知识。 ------主要考察的是position的absolute怎么实现,实质是什么
2.给我讲一讲CSS中的“盒子模型”。
3.说一说display相关的东西。
(这一部分考核了很久,我能记得的就这几点,但每一点都扩散了很多知识,主要就是看你的布局和对CSS深层的一些理解)
JS部分:(我是偏薄弱的,哎)
1.说一说JS里面的闭包吧,还有原型是怎么回事?(直接敲了代码,让我实现一下)
2.你平时在JS里面一般是怎么封装对象的,思路是什么?
3.知道JS里关于this对象具体怎么用么?
4.JS里面典型的冒泡事件,也就是默认机制,是怎样的?
5.JS里面“==”和“===”有什么区别?(我回答了这个题之后,面试官说了一句“为什么你们来面试的这个题目普遍答得都不好啊” ,我流泪.......)
6.ajax技术(这个也聊了很久)
7.(因为我的项目用的是JQuery)有没有看过JQuery的源码?balabalabala........
其他部分:
1.说说一些常见的兼容性问题吧,怎么解决
2.又聊了一下缓存技术
3.平时都是怎么优化网站的,说一些优化网站的策略以及平时自己的实践?说一说为什么这样优化?(很多知识,最好是结合自己实际操作过的讲)
(这里由于我没有说到CDN,面试官就出了一个场景题让我发散思维,大公司是真的很看重你思考问题的角度和会不会思考的)
感觉列出来没多少问题,但是每一个问题发散出来的细枝末节很重要,而且面试官一般都会在你的回答里面抓住关键词,然后从关键词延伸出对你自身技能的考核。而且在这个过程中,遇到不会的也不要紧张,跟着面试官的指引方向思考问题,注意,可以发散思考,但是也一定要抓住核心,毕竟如果你说太多无关的,只会问题没解决,漏洞更多。