向那些年我们经历的一面N面致敬_html/css_WEB-ITnose
写在前面的一点个人感受
忐忑了长达一个月的心在这拿到腾讯sng的offer之际终于平静下来,趁现在感觉和记忆还没有淡去,记录下面试一路经历的点滴。
感觉自己也算是个挺幸运的人吧,像是一切安排好了一般。高中通过学校的第二兴趣培养接触到ps,接触了编程。虽然高考踩了个坑,但也被补录了个二本院校的一本专业。挺巧合的,也算是个偏技术型的专业。其实当时补录的时候根本不知道这专业是啥哈(信息管理与信息系统)。但是名字那么长还是让人感觉比较霸气的。
嗯,真正学习下来发现是个神奇的专业=-=学科从java到会计,从数据库到国际贸易。文理商管各有涉猎。但基本都是浅尝辄止,没有一门是能让人学到精那种。于是也迷茫过,当时正处于js的初学阶段。那时候写网页动效全部都是从网上直接下代码。那冗长的没有注释的代码特别坑啊有木有。发现我扯得有点远了,那么回到面试这个话题上来。
从内推到处女面
其实一开始就奔着腾讯UI开发(前端的重构方向)去的。个人兴趣吧,因为是女生,所以喜欢偏向展示层面的东西而没有那么接近底层。大概二月底的时候吧,就收到一封邮件说“同学,你已被伯乐推荐提前进入2016校园招聘……巴拉巴拉的”特别突然,当时还不知道是哪个腾讯师兄内推的。怀着感激和紧张的心情就去填了相关资料。
之后3月份师兄又不厌其烦地帮我各种内推腾讯,wxg,sng的。大神师兄多真是棒棒的^^
然而——
腾讯这边的音讯就像是断了一样,小喇叭和小电话一直没有响起过。
倒是由于项目组导师的关系,让我经历了阿里巴巴的一面和二面。
阿里一面
3月初,很突然地接到杭州的电话,果然是阿里巴巴的。有些意外吧,因为进阿里真的没什么把握,不得不承认偏底层东西真的学得不行,但既然机会来了,那么就让自己涨涨经验和见识吧。
一面问的内容非常的泛。但基本都是点到即止。所以这也要求我们了解的前端相关知识广度要足够大。不要仅仅局限于html+css+js这几个领域。
首先是最基本的问题啦:自我介绍。哈哈=-=当时我好紧张,声音都在抖,像在背书一样,把自己的一些相关信息说了一遍。感觉过多地强调了自己的项目经历而没有突出自己的个性。
第二个问题:为什么选择前端呀。很久之前,一个师兄也问过我同样的问题,当时说的是因为不喜欢后台。虽然是实话,但这是面试呀,当然要说点有水平的。我说感觉前端开发能将射击之美和逻辑之美结合在一起,前端开发人员能运用自身的审美和逻辑思维把网站前端完美地构建出来,是一项能切实被感知和体验的职业。
接下来问了项目,看了什么书。其实看的书不少,但是好像一下什么书名都想不起来似的。只说了,web标准设计,css禅意花园,图解css3和js高级程序设计。
接下来就是html,css,js这三大方向的基本问题。期间也穿插一些数据结构和数据库的问题。都不算难,比如数据结构的排序,时间复杂度的问题。数据库的话就只问了会用哪种。
html基础:常见兼容问题。回答分了三个层面,各列举了html,css,js上的兼容性。
为什么要有doctype声明。 doctype有几种。 html5的与以前版本有什么不同(html5不基于三顾茅庐//sgml =-=了,所以不需要引用dtd哈)。
css基础:面试官好像最后才问的 css相关问题。听到的时候松一口气,总算到自己比较熟悉的啦,哈哈。 position有几个值,相互有什么区别。这题说了sticky也许会加分哦。貌似没其他问题啦。
js基础: null和 underfined区别。 null==undefined返回什么?我说 true。又问为什么?我说存在自动转换(不对哈)
应该是 underfined是派生至 null的,所以 underfined== null,要比较相等性之前,不能将 null和 underfined转换成其他任何值。
他说既然说到自动转换,那么 0=='0'返回啥?当然还是true啦。数值跟字符串比较会先将字符串转换为数值。
有没有看过 jquery源码?看过一点。能说说原生“阿贾克斯”是怎么实现的吗?balabala,狂说一通。幸好是电面,要我直接写的话还不一定写得出~
这里做个总结:创建 XMLHttpRequest对象(处理兼容问题)>创建一个新的请求,即调用open方法,指定请求的类型,地址>设置相应HTTP请求状态变化的函数>发送HTTP请求>获取异步调用返回的数据>使用js操作dom进行局部刷新。
get和 post安全性?为什么?如何实现跨域。腾讯也问了这个问题,但是我两次都漏了 CORSQAQ。 jsonp原理。我说主要是通过利用src这一属性可以引用非同域资源这一特点实现的。然后问jsonp用的是get还是post。二分之一的概率然而我还是答错了。=-=老是想着post安全性更好,就说post。但是面试官引导我然后把我纠正过来啦~
require.js和sea.js的区别。
HTTP状态码: 200与 204的区别。对不起不知道。 301与 302的区别。对不起不知道。有点偏啦。
又问我304,什么情况下会出现 304的情况。
我说这是告诉浏览器从缓存中获取资源。
这里顺带提一下哦, from cache也是从缓存中获取资源。但是304的情况需要先将本地资源的 If-Modified-Since和 If-None-Match跟服务器返回的 Date和 ETag进行比较。如果相同才用浏览器缓存资源。而 from cache一般与expirse相关啦。也就是说304这种情况还是会向服务器发一次请求的。那么什么设置了什么才能有304这种情况出现呢?是 cache-control:no-cache。而 cache-control:no-store是无论在任何情况下都不进行缓存。
当时感觉这道题答得还行~
其他:当你在浏览器地址栏输入www.taobao.com到浏览器展示出一个完整的页面间发生了什么?哈哈哈,好像各面经宝典上都有哦,这问题。
最后问了问前端新技术。大概50分钟,这样就结束了我不太愉快的处女面~面试完晚上就把这些记录下来啦~
阿里二面
等了好久呀,一个星期。我第六感可能比较强,也因为感觉一面每个问题都能答到,应该没有被刷。于是在一个班会课上就接到了二面电话。
感觉面试官好强(后来通过聊了下知道他好像是支付宝部门哒)。
//而且 声音超!级!好!听!也许是苏浙那带的本地人,感觉那边的普通话说得好标准啊。而且好亲切呀。称呼我是直接去掉姓称呼名字的^^。
一上来就问我,觉得你哪些方面没有答好。后来才想到这是主动让面试者把不足点爆出,好找缺口趁虚而入,把你干掉~
哈哈,然而我当时就傻傻地说了。说了require.js和sea.js的区别没说好。但是再说一遍感觉也没说好啊~他还特意地用他的意思总结了一遍。然后就提到了MVC=-=真心不该说这个,因为自己对它的了解程度仅在于会用而已。深一层就完全不会了。所以由这个衍生的问题果然就答不出来了。还问了二叉树原理。啊~对不起,这个真心不会。
其他问题就较轻松啦,团队合作呀,看你们的配合程度。主要通过什么途径学习啊,看你对知识的摄取能力强度。喜欢什么学科,我说java=-=。其实仅限于第一次敲出hello world的兴奋而已。你认为你非编程类学科学得比较好的是什么?我说计算机网络。其实他想听的是数据结构。
最后你有什么问题想问我。。。因为感觉自己表现特差,就问面试官您觉得我表现咋样=-=现在回想起来觉得自己傻傻的,不应该问这些有关个人评价的问题,不仅让面试官不好回答也让他感觉你的关注点所在方向没什么营养。果然,他说:这个…不好回答~ 应该是笑着说的,语气温柔。可能看我是个铝孩子,哈哈。然后我又补充了个你们平常都是使用kissy这个框架咩?他说只有淘宝用哦~
这样就结束了还算愉快的二面^^然后我的神奇的第六感就告诉我二面挂啦=-= 所以噢,二面一定不能为了不失逼格而说一些自己不太深入的,但是比较高端的知识点。因为怎么说面试官经验肯定比你丰富,你能说的那些别人一定懂得比你多。这样他会觉得你连一知半解都不算,只是会搬砖而已。 相反,如果想说点高端的,一定要事先深入了解并且有一定的实践,这样就不但不会被问倒,也能得到面试官的认可,获得一定加分哦。
处女面到腾讯UI开发岗面
先写到这噢^^