记录一次蚂蚁金服的前端面试

坐标成都,大专,4年前端,分享一次本身在蚂蚁金服的面试经历。css

一面

  • 1.自我介绍

答:我是XXX,经历。。。。前端

  • 2.vue data响应式的实现

答:啪啦啪啦说了一大堆,感受我很兴奋。vue

  • 3.vue computed的实现

答:好吧到这里我就卡住了,由于我当时比较紧张了,尽管我心里不停的劝告本身,而后脑海一片空白。webpack

  • 4.你在css方面的擅长?

答:我擅长的是css中的定位。git

  • 5.请详细介绍下定位?

答:static,fixed,relative,absolute,sticky,inherit。而后就它们的用法分别作了介绍。程序员

  • 6.你知道浏览器缓存吗?github

  • 7.你还有什么想问的吗?web

略。面试

二面

  • 1.webpack的配置方式和编译过程。

答:这个题比较大,我感受我答的也不是很好。算法

  • 2.解析URL参数。

我当时的思路就是这样,经过截取到字符串后面的参数,而后经过正则去进行匹配,分别匹配参数名和参数值,它们必定是匹配到二个数组,而后遍历其中一个数组,就能够了。如下是我面试完以后根据思路实现的完整代码,固然面试的时候是确定写不到这么完整的。

var getURLParam = function(url){
        let res = {};
        if(url.lastIndexOf("?") === -1)return res;
        let param = decodeURIComponent(url.slice(url.lastIndexOf("?") + 1));
        let keys = param.match(/\w+\=|\=/g);
        keys && (keys = keys.map(k => k.replace(/\=/g,"")));
        let values = param.match(/(\=(\w+|\s*)\&)|(\=(\w+|\s*))/g);
        values && (values = values.map(v => v.replace(/\&|\=/g,"")));
        keys && keys.forEach((k,i) => res[k] = values[i]);
        return res;
    }
复制代码
  • 3.实现通用的批量更新策略。
let notifyFn;
    function fn1(){
        notifyFn();
        statement1;
        statement2;
    }
    function fn2(){
        statement3;
        notifyFn();
        statement4;
    }
    function fn3(){
        statement5;
        statement6;
        notifyFn();
    }
    async function onMount(){
        notifyFn = update(() => {
            //在statement6执行完以后执行
        })
        fn1();
        await Promise.resolve();
        fn2();
        await Promise.resolve();
        fn3();
    }
复制代码

这道题,我第一次看到的时候是一脸懵逼的状态,彻底看不懂这道题的考察点是什么,尽管我问了一下面试官,面试官给我讲了一番,我仍是没有听明白。面试官说咱们先跳过这一道题,来分析下一道题。

  • 4.React基于单向数据流。对于组件间的通讯支持不够好。现须要模拟一个全局的EventStore。使得能够知足如下条件,以支持组件间的通讯。
class Event {

    }
复制代码
// 用法
const loader = new Event();
loader.bind("loaded",event => console.log(event));//注册事件
loader.trigger("loaded",{ data:"data" });//触发事件
loader.unbind("loaded");//注销事件
复制代码

这道题,我看着就像是实现一个事件派发器,也给面试官说了本身的实现思路。

  • 5.你还有什么想问的吗?

略。

一面我其实仍是作足了准备的,二面因为我本身都以为个人表现不是很好,因此很显然二天后的我就收到了面试没经过的邮件,我详细分析了一番,最后作出以下总结。

面试总结:

个人二面太急切仓促,没作准备,而后二面面试也没有很好的表现出本身的亮点和能力,最后问问题一环我居然还没问问题,只是要求面试官可不能够把题记录下来(我本意就想下来研究一番,尤为是第三题)。

事实上,除了第四题我算是之前写过一个相似的,其余题我都是没有准备过而临场发挥。所以,我掉分的关键不在于作题,而是个人表现。我直接读不懂题,而后面试官给我讲了一番,我仍然没有明白,也没有去思考为何,因此可能这就让面试官觉得我放弃了这道题。

整场二面,我在其余三道题上分析的还算中规中矩,但在第三道题,我就很慌张,没有表现出冷静思考的样子,因此这里应该就是我掉分的关键点。

整场蚂蚁金服面试就这样结束了,通过这一次面试也让我知道了本身的不足之处,那就是很容易紧张,心慌。

做为一个程序员,最应该有的态度,就是不停专研,不惧困难,遇事沉着冷静,临危不乱,才能更好的展示本身。而我并无作到,因此我将在接下来的时间好好准备,充分提高本身,我想但愿我能在半年后继续参加面试。

学无止境,路还很长,我还会有很长的路要走。面试事后,通过本身的总结和反思,我终于明白面试官想要考察的不是题的答案自己,而是我有没有解决问题的决心,有没有冷静分析问题的能力,还有本身的思考和理解。

我天天也在练习一道算法题,督促本身好好学习,并记录下来本身的思路,而后整理成了文档网站,欢迎查看剑指offer算法题

个人开源项目一个使用原生JavaScript编写的颜色选择器,灵活自定义扩展,修改配置对象还能自动更新ew-color-picker

个人文档已经完善了很多,详细介绍了各个api的使用,但愿可以我提issue,这个项目还有不少不完善的地方。ewColorPicker文档网站

我在思否录制上线的课程玩转typescript1玩转typescript2适用于有必定基础的前端,还望你们多多支持,谢谢。

相关文章
相关标签/搜索