刚刚我经历了第一次正式的求职面试。终于我也要开始直面残酷的社会了。
image.png
公司前一天晚上8点多通知我第二天晚上7点整电话面试。说实话,我因此处于绷着的状态整整一天(年轻人经历得还是太少啊——)。下面说点干货。
面试官在7点准时打来电话,首先是让做自我介绍。额,我事先都忙着准备技术问题了,这个还真没准备,磕磕巴巴讲了一分钟吧(感觉很不好,就像当年的自主招生面试,上来就是英文介绍自己的母校);然后就是面试官根据你的简历,问下你做的项目详情(这一块我其实还是做了点东西,但是语言组织地混乱,口述也不流畅,要是提前写个稿子,好好组织下,会更好),其间会问你采用的技术方案(主要使用了哪些技术以及目的),如何解决的问题。
然后面试官会考察下你的基础知识,我被问到了:
(1)网页都有哪些方式可以向服务器请求数据?(我只记得ajax,通过XHR);
(2)http协议,TCP三次握手(为什么要握3次手,因为服务器喜欢客户端啊,想制造更多的接触机会,真相当然不是这个,皮一下,哈哈);
(3)(最难的一个问题)给定一个数组,要对其中的每个元素执行异步处理,后续元素需要等前面元素处理完了才可以开始(链式),如何实现?(我其实不知道,瞎答了用promise+递归或者queue.js的defer+await,感觉都没说到点子上,因为他听完第一个问我这样处理有没有什么问题);
(4)ES6的新语法(由于我说了自己这块了解得很少,他问的也很简单,var let const区别,我答完他追问了如果用const保存了一个数组,那么可以对该数组追加元素吗,可见面试官的考察是逐渐深入的,哪怕是很小的点,如果背后涉及常见误区,那这个误区被考察的可能性非常大);
(5)浏览器常用的缓存策略(这个我只知道几个名词,然后被追问了两个问题:(a)如果要缓存一个图片,应该从哪个缓存里访问?(b)一个站点缓存的cookie,能在另一个站点中获取吗(站点这个词可能不太准确,我记不清他当时说的术语了));
(6)说一下快速排序(虽然之前专门补过基础的数据结构知识,然而没亲自动手写代码实现,加上紧张一开始没想起来,只记得用到了递归,拖了一会,终于想起来要选个pivot,将其他元素与其比较,小的放前面,大的放后面,再对pivot前后两个区间进行递归处理,直至每个区间长度为1。被追问pivot的选取有什么讲究吗?我答的没有,一般取端点)。
整个过程大概持续了40分钟(前35分钟面试官问,我答。第35分钟他问完了,问我有什么想问的,我大概问了他5分钟吧),气氛其实还好,面试官很温和,提出的问题也是根据我的水平来的(原谅我目前很菜-_-),问得比较细致,程度逐渐深入。我有几处真不知道,就直接说的不知道,后面会去了解。
心得:前期准备很重要!基础要扎实,知识要融会贯通成体系,不能只会概念,常见的难点、疑点、误区要弄清楚;口语表达要多练习。
image.png
网友评论