面试经历-阿里钉钉前端实习

  |  

前言

阿里钉钉前端团队面试


58



一面

钉钉一面的过程比较简单,内容也比较上。面试官上来先让我介绍了一下在校做的两个经历。

然后直接开始做题,三道题目

第1道:CSS未知父子元素高宽实现子元素相对父元素水平垂直居中

1
<div><p></p></div>

我写了两种方法:flex弹性布局,tranform绝对定位。

第2道:用ES5原生实现ES6的extends函数

1
2
var Dog = extends(Animal, {methods, constructor()});
var dog = new Dog();

这道题写的就不是很好,面试官描述的不是太清楚,我写的也不好,就稍微封装了一下组合寄生式继承的方法,但是在参数传递上没写好

第3道:排序算法

一开始让写的是冒泡和快速,但是快速想不起来了,就让写了冒泡和选择,这个还是很简单那的。

三道题写完以后就开始问答了

先问了用的什么框架,用的Vue。再问之前用过jQuery吗,看过没用过。你觉得Vue这类框架和jQuery有什么不同?Vue和jQuery最大的不同在于两点,一是使用了虚拟DOM,二是采用了MVVM框架。

扩展开来问,虚拟DOM有什么好处?用JS对象去模拟DOM树结构,减少对DOM树的直接操作,避免浏览器反复渲染消耗系统资源。

那再介绍一下MVVM模式。MVVM模式即Model、View、View Model。后端主要负责Model,前端主要View和View Model。MVVM是从MVC模式演变过来的,中间经历了MVP模式。MVVM模式最大的优点就是解耦了Model和View层。View层的数据变化不会直接反映到Model层,同理Model层的改变也不会直接反应到View层。ViewModel层在中间做了一个缓冲。

那么MVVM模式是如何实现双向数据绑定的?是通过数据劫持,及通过Object.defineProperty。通过一个Observer观察者将数据变化反应到Watcher。

除了Vue还接触过什么吗,答React刚开始看。问你觉得React和Vue用起来有什么不同。不知道怎么答了,扯了一下感觉React用起来比较的乱。

最后面试官介绍了一下部门,是阿里钉钉的,钉钉你知道吗,钉钉软件里很多办公组件是用前端写的,像Excel表格和Word文档,我问了一句是Web Excel(我记得我再哪里看到过一眼)。他说是的,然后说我们这里觉得你还不错,应该会有下一轮,到时候等通知。

文章目录
  1. 1. 一面