五月十九号,迎来第一次真正的面试。老实说,当时是有点激动的,但是坐了近两个小时的地铁之后...也就平复了下来了了。
说一下第一印象吧,公司很容易找到,离地铁站几分钟脚程,在一个写字楼里,进到公司就有一种年轻的感觉,然后就看到了公司的小吉祥物,叫哈阳酥的柯基,还有一直懒懒的英短,当时是觉得这个公司很有活力的嘛,而且老板肯定也很和蔼。之后填了一张表,等了十几分钟后就被通知去做一下笔试题
笔试是在会议室做的,一进去才知道前面已经有好几个了。发了个笔记本,一共五题,开始两题是H5跟CSS3的样式题,要实现一个H5的语义化布局和CSS3的SVG动画,因为平常这方面做的比较多,也不是很难,花了大概十分钟就做好了。
然后是一道js编程题,也是很普通的数组去重加上输出重复的数字,我的思路是:新建一数组,遍历传入数组,若元素不在新数组中就添加到新数组中。用的方法是判断值是否在数组的方法“indexOf”,因为是ECMAScript5的方法,IE8以下不支持,需多写兼容低版本浏览器代码。
第四题是jQuery的监听事件绑定题,因为开始思路错了,只单纯的想到滑动监听和点击监听,没有考虑别的交互,所以感觉是不是太简单了,之后重新想了一遍,才意识到是考我们的DOM的事件绑定,思路想开了,也感觉很简单了。做到这里大概花了近五十分钟了吧,现在想想还是用的时间太多了,以后还要锻炼自己的编码速度。
最后的一道题是考Vue.js ,因为没接触过,就坦白写了没有学过...之后是现场做一个能进行浮点数运算的计算器,因为之前在FCC上做过计算器,所以HTML和CSS都很熟悉了,要改的只有js的算法,因为浮点数运算的Bug,如 2.2 + 2.1 = 4.300000000000001 这般,所以要考虑到如何优化算法来避免这种情况的发生。在自己先把大体做出来之后,在控制台我发现了导致这种错误的原因是乘法计算错误,所以只要优化乘法代码就好,大致代码如下:
functionadd(a, b) {
varc, d, e;
try{
c = a.toString().split(".")[1].length;
}
catch(f) {
c =0;
}
try{
d = b.toString().split(".")[1].length;
}
catch(f) {
d =0;
}
returne =Math.pow(10,Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;}
最后实现效果也不错,当时面试官测试过也没说什么。
五个人中我是第三个完成的,等了十几分钟之后就是面试,还是视频的哪个老总来面我的,感觉人很和蔼,没有那种压迫感,我也就随心来说咯。问了关于自己的技能发展打算,我说当前火热的框架是肯定要熟悉的,不可能就只会Bootstrap和jQuery,这样是很快会被淘汰的,当然,最核心的仍然是js,万变不离其宗,js 学好了任何框架都是可以用原生js 来解释的,只是编码量的大小。之后就是聊了在在大学里做了什么,对自己学校的看法,对公司的第一影响,还着重问了关于猫狗的看法...我说我家原来养了一条近十年的中华田园犬,他就笑了 - -
面试过程除了不会的vue.js外,大概就怕计算器那个有什么小的bug没想到吧,比如兼容问题...大题感觉还是不错的,挺喜欢哈阳酥的,胖胖的也不怕人。。。一次面这么多,还是有点悬,前端啊,人还是太多了。。