首页 > 阿里钉钉前端从一到hr 已OC
头像
南特6先生
发布于 2021-03-27 22:29
+ 关注

阿里钉钉前端从一到hr 已OC

ps. 没有录音,勉强回忆了一些
(所有面试都是钉钉视频)

一面

1h30min

  1. vue的基本原理,双向绑定、diff算法、模版引擎具体讲一讲
  2. 脏数据劫持讲一下
  3. Promise状态,宏任务、微任务
  4. 闭包定义,使用场景
  5. 事件触发机制、事件代理
  6. 跨域是什么,有哪些解决方法讲一下
  7. 浏览器缓存机制
  8. XSS和CSRF是什么,如何防御
  9. webpack用过吗,有哪些优化
  10. 项目里用过哪些优化,具体怎么做的
  11. 水平垂直居中有哪些方法
  12. http和https讲一下,加密过程
  13. 反问

算法:
1.版本号判断

function compareVersion(version1, version2){
  if(!version1 || !version2){
    throw new Error("Version is null!");
  }
  if(typeof version1 !== "string" || typeof version2 !== "string"){
    throw new Error("Version is null!");
  }
  let arr1 = version1.trim().split(".");
  let arr2 = version2.trim().split(".");

  let diff = arr1.length - arr2.length;
  function getZero(diff, arr){
    for(let j = 0; j < diff; j++){
      arr.push("0");
    }
  }
  diff > 0 ? getZero(diff, arr2) : getZero(diff,arr1);

  for(var i = 0; i < arr1.length; i++){
    if(Number(arr1[i]) > Number(arr2[i])) return 1;
    else if(Number(arr1[i]) < Number(arr2[i])) return -1;
    else continue;
  }
  return 0;
}
  1. 快排

  2. 数组去重

  3. 深拷贝

    function deepClone4(target, map=new Map()) {
     if(target && typeof target === "object" && target.constructor !== RegExp){
         let cache = map.get(target);
         if(cache) return cache;
    
         let isArray = Array.isArray(target);
         let res = isArray ? [] : {};
         map.set(target, res);
    
         if(isArray){
             target.forEach((item, index) => {
                 res[index] = deepClone4(item, map);
             })
         } else {
             Object.keys(target).forEach(key => {
                 res[key] = deepClone4(target[key], map);
             })
         }
         return res;
     }
    
     return target;
    }

二面

50min

  1. 自我介绍
  2. 讲一下做过的项目,哪些技术栈
  3. 项目中担任什么角色,有什么亮点、难点,怎么处理困难
  4. 小插件如何实现,组件通信怎么做的,有哪些方法
  5. 比赛中担任什么角色,做了什么,怎么做的,学了什么
  6. 未来什么计划
  7. 反问

三面

50min

  1. 自我介绍
  2. 具体讲一下项目,哪些技术栈
  3. 项目中有什么优化
  4. webpack底层原理了解吗
  5. 前端路由原理
  6. 反问
    (三面真的有点忘了。。。)

四面

35min

  1. 自我介绍
  2. 为什么选择前端,有什么打算
  3. 前端主流有什么技术,react与vue有什么区别,哪些工程react好
  4. ts学了什么,以后会关注什么,怎么去学习
  5. 项目中node做了什么,还会node什么
  6. 开放题:扫码登陆怎么实现的,前后端具体讲一下,技术细节说一下
  7. 轮询和websocket有什么区别
  8. 说一下你所了解的钉钉
  9. 反问

hr面

25min
小姐姐很友善,整个面试像聊天一样,开场聊了聊我的寝室,单人间很大很爽

  1. 自我介绍
  2. 拿了什么奖学金,有什么要求
  3. 参加了这么多比赛,跟专业相关吗,为什么参加呢
  4. 项目具体做了什么呢,成果怎么样
  5. 前一段实习做了什么
  6. 未来有什么打算,老家是哪的,杭州能来吗
  7. 钉钉的业务了解吗
  8. 还有什么问题吗

整个面试流程很快,一周就走完了(虽然中间发生了一些事)

三天后就收到了意向书,暂时没有正式offer

不过,至少心里有了底了

希望最后能去杭州,也祝愿牛客的大家能拿到理想的offer!

更多模拟面试

全部评论

(9) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐