阿里【前端/全栈】职位电话面试记录

写在前面

如今彷佛比较流行分享一些面试经验?正好最近闲来无事,简单分享一下今日关于阿里电话面试的记录,供你们参考吧。css

前些日子有位阿里的大佬发私信询问我是否有意去试试【前端/全栈】的职位,说实话我当时实际上是处于懵逼状态的,由于深知本身水平通常,可是仍是愿意去试一试的,以后简单沟通后就把本身的简历经过邮件发给了他,而后他告诉我按流程应该很快就会接到预定面试的电话。前端

下面简单记录下电话面试的整个过程,以及期间涉及的问题还有本身的一些看法。vue

简单介绍一下在当前公司的具体工做内容(业务方向)?

开头并未让我作自我介绍,直接就开始面试了,这个整得我有点懵逼,而后就直接说了说当前工做所涉及的工做内容,以后面试官并未追问什么其余的,应该是一个暖场问题。python

平时接触的前端技术能够简单罗列一些吗(较擅长的)?

我接触的前端技术很杂,基本主流的技术都有接触,而后罗列了一下,面试官也没有追问什么,我当时心想多是面试官须要把握后面的提问方向才问的这个问题(事实证实我错了)。react

先考察一下 css 相关的东西,请问如何实现一个左右宽度固定,中间自适应的布局(能够说多种方案)?

这个问题的详细答案网上应该是一搜一大把,这里就很少说了,我当时说了两种,一种是 float + bfc + 圣杯布局,另外一种是 flex,关于前者 balabala 说了一堆估计面试官大概明白我意思了,而后简单说说 css 属性就好,不要解释太多原理方面的东西,而后让我说说第二种。linux

以后我就按他的要求把第二种涉及到的属性讲了一遍,而后他说能够了,而后追问了两个小问题:nginx

  • 左右 div 的 width 属性可不能够被别的属性替换?
  • flex: 1 是一个缩写写法,能不能详细说一说完整的语法,以及每一个参数的含义?

这个天然也比较好答,balabala 又大概说了一下,而后面试官说能够了,进行下一个问题。程序员

这里值得一提的是,必定要听好面试官的问题,我在这里可能由于口音的缘由,没太听清,觉得让我列举 flex 布局涉及到的其余 css 属性,结果一顿说,最后他说只描述 flex 属性就行了。angularjs

考察一些 js 方面的东西吧,有遇到过跨域问题吗?可以给出一些解决方案?可以简单对比下不一样解决方案间的优缺点吗?

这个也是比较老的问题了,考察 jsonp 和 cors。这里就不展开讲了,网上一搜一大把,我这里答的还算不错,基本从原理到实施大概讲了一下,就是对比优缺点的时候,略微卡了一下,在面试官的提示下,也回答上来了。面试

react 熟悉吗?

我说如今不太熟悉了,由于当时接触的时候是 0.14 版本以后就转 angular 了,不过对于一些核心的概念仍是懂的。面试官没有继续追问别的相关 react 的问题。

那除了 react 的话,angularjs、angular 和 vue 哪一个更懂一些?

这里我说均可以。

vue 中实现双向绑定的原理?

简单说了一下 setter/getter 涉及的东西,而后我也不知道当时脑子是短路了仍是怎么的,就没继续说了,后来在面试官说你这才说了一半啊,另一半呢?我这才回过神来,把 dom 相关的事件还有观察者模式说了一些。以后没有追问其余的东西。

angular 中 directive 概念有接触吧?能够描述下声明 directive 的语法以及涉及属性的含义?

当时我追问了一下是哪一个 angular,面试官说 angularjs,而后我忽然有点懵逼,由于 angularjs 已经很久未用,directive 的概念我是知道的,可是其中涉及的一些属性我是真的忘了。后来停顿了几秒,勉强回忆起部分重要的属性,大概说了一下,以后没有追问任何问题。

问一些 http 相关的东西吧,请问 http 协议是否有仔细研究过?

我这里询问了下具体指哪些方面,面试官说就是 http 协议中关于响应请求的报文格式等东西,关于 http 协议自己,因为我也是只知其一;不知其二,这里就直接回答不清楚了。

再问点儿别的,linux 操做系统中的文件系统有哪些?

这个一脸懵逼,直接说不知道了。以后面试官说通常平常使用 linux 的话应该有不少机会接触这个知识点的,若是只是工做是部署下服务器,可能确实不知道,就不追问了。

linux 查看磁盘使用状态的命令是什么?

这个也没有答出来,由于确实平日上服务器也不会刻意留意磁盘使用状态,可能以前看关于 linux 的书籍也见过,可是忘了。这里面试官追问,我对于 linux 是什么使用程度,我大概描述了一下,平日是用 macos,部署的话是 ubuntu,说了一些本身平平常用的命令和工具,以后没有继续追问其余问题。

关于查看磁盘使用状态的命令,这里就不赘述了,网上搜索一下,文章不少。

有使用过 nginx 吧? 请问 nginx 与业务服务器是按照什么协议进行通讯的?

nginx 做为反向代理,确实已经使用过无数次,可是背后与业务服务器通讯的协议真的没有深刻了解过。后来查了一下,彷佛是一个叫做 cgi 的协议,这里涨知识了。

有一个宽高 100px 的 div,请详细描述一下如何实现拖拽操做(能够说多种方案)?

简单描述了使用 drag、drop 和 mousedown、mousemove、mouseup 事件的两种方案、实现过程以及优缺点。

以后面试官追问了一个问题,若是鼠标移动过快,移出了 div 容器怎么办?这个问题我一开始没有 get 到他提问的点,往边界条件和友好性说了一些,彷佛是答非所问了。而后面试官提示我说有听过事件冒泡吗?我说知道,而后往事件委托上答了一些,可是仍是没有说明要利用事件委托作什么,最终面试官说往 document 上增长相关事件就行了,而后我一下明白他啥意思了。

我看你简历中有写 python 以及 django,可以简单介绍一下 django 中涉及的核心概念吗?

大概按 django 那个入门文档的角度简单的将了将 django 中的 MVC 是如何表现的,以及一个 http 请求从浏览器发送至业务服务器,再到相关数据被持久化到数据库的整个过程,以后没有追问任何问题。

有什么想要询问个人问题?

我问了问面试官,关于我回答不出的这些问题,如何才能在平日工做中获取?他和我说了两点,一点是靠契机,意思就是确实会遇到相关领域的问题,第二点就是靠意识,在解决问题的时候,挖深一些,不要仅仅拘泥于解决问题的表面。

总结

整体下来,感受是要凉凉的节奏。由于面试的职位是【前端/全栈】工程师,因此考察的问题并不是局限于前端,还包含若干其余领域的知识。看来平日还需多积累,多学习,虽然我一直是以程序员、工程师的角度来要求本身,不贴过多标签,好比前端、后端之类的,对于未知的知识时刻保持好奇心,然而彷佛证实力度仍是远远不够的。

革命还没有成功,同志还需努力。

相关文章
相关标签/搜索