阿里面试总结

阿里巴巴 2015 暑期实习前端面试总结

总的来说这次面试是我人生中第一次接触巨头级别的面试。

坐在休息室里问问周围的人基本都是研究生级别的,也是醉了。作为一个本科生感觉在这种场合非常有(心)面(虚)子(啊)。

但是看到这么热爱技术的 geek 们心中还是有点小激动呢。感觉终于从麻瓜世界来到了霍格沃茨。

一面

一面是一个胖乎乎的大叔面的。感觉人很憨厚。上来直接扯了很多有的没的,然后祭出大招

你为什么学前端

第一次接触到前端的概念的时候是看到一个男生做了一套非常漂亮的 canvas 跟女生表白。 那一刻我突然发现隐藏在各种公式和标签背后的 web 前端有成吨的泡妞潜力,于是毅然决然投入到这个大坑了

一本正经答的我发誓。 然后大叔强忍笑意,感觉这个动力如此实在,竟然无法反驳。 rocks!

前端性能优化

这个其实都是看各种知乎大神的白活看来的,什么 sprites 啦什么 concat 啦等等等。

我的回答也比较中肯,我就说现在前端最大的瓶颈一般都是图片太大影响了整个页面的加载速度

但是大叔直接一语道破天机: 图片懒加载

这算是学到的很重要的一块儿吧,其实相比优化图片来说,剩下的那些都相对没有那么关键了

打卡js设计

说实话我只会调用 google analytics 所以这块真的不会

不过大叔依然一语道破天机: 阻塞式加载 放在 <head> 或者更前面加载三行 js 然后放一个 ajax 到 server 包括

  1. refer
  2. user-agent

这两个基本的信息

好了轻松的一面过去了,下一波的 二面 我果然跪了 不过不冤确实

二面

技术面试,面试的是一个白白胖胖的大叔,感觉跟第一个大叔比起来要古板很多。所以见到他之后直接收起来了泡妞那一套看是战战兢兢答题

到现在印象都很深刻

作用域问题

function test() {
  var a = 0;
  a = 1;
  setTimeout(function() {
    alert(a);
    a = 1;
  }, 1000);

  a = 2;

  setTimeout(function() {
    alert(a);
    a = 3;
  }, 3000);
}

test();

alert(0);

问输出什么。 我去时答对了 0, 2, 1

但是大叔又问了垃圾回收的问题。 他问我如果在 a 后面加入一个 var b = 1; 那么 test() 执行结束之后 b 会不会被回收。

我直接就跪了 垃圾回收 有时间已经研究透它

然后问了我一个奇奇怪怪的 eval 的问题, 我完全不知道他再问什么,就是隐约接的好像是关于 eval 作用域的,确实掌握不熟练, 有时间赶紧看看

__proto__prototype

这个直接问到了我的薄弱环节

后来查到原来 prototype 类才有的东西。 就是抽象的, 实例是没有 prototype 的,实例只有 __proto__ 这个属性, __proto__ 是由 prototype 推演出来的,所以相当于一个clone,就是每一个实例都有自己的 __proto__ 当我们去叫 prototype 里面的方法的时候,实例会去 __proto__ 里面找相关的方法。

好吧不冤枉,可以继续努力学习基础

css 竖直居中 + 水平居中

擦,竖直居中还真的没有好好看,而 inline-block 的原理还理解不够透彻

不问不知道,一问这么长时间自己薄弱的基础就全都暴露出来了。。。。

window.onload 和 document.ready 的区别

事件是我去广州的火车上才开始好好看的,所以。。。 只能胡说了。。

好吧,二面下来发现自己虽然跪了但是跪得不冤枉,确实有很多知识点掌握不够,基础还是偏薄弱。 回想自己这半年,虽然框架接触了很多,但是仔细想一想,自己的语言基础还是没有打好,所以暑假的时候准备不盲目组项目了,

先把自己的与研究出打好然后研究完 jquery 并且手撸纯 js 实现的 dom bom 将是我下一个学习阶段的重点

happy coding, may the code will always be with you~