阿里前端春季实习面试笔记

438 阅读5分钟

前言

暑假需要找份前端实习, 通过内推进了阿里面试流程, 总共持续了一个多月, 最后居然给了offer, 在这里记录一下大致问到的问题, 希望对大家有帮助🚌

3.18 一面: 一小时十分钟


一面面试官是个小姐姐, 主要考察前端的基础知识和一些逻辑问题, 问题类型很全面, 难度由浅至深; 每次回答完之后面试官会立刻抛出下一个问题, 一个小时的面试结束后喉咙干的不行...但总体面试体验还是很良好的;

  • 自我介绍balabala;
  • 讲简历上的项目,遇到的问题;
  • 知道哪些HTML5的新标签, 新API;
  • 如何理解HTML语义化?
  • CSS3的新属性, 动画相关的有哪些;
  • 为DOM元素添加CSS的方式有哪几种?
  • CSS的选择器权重计算;
  • 如何优化CSS选择器?
  • 编写HTML和CSS的结构时时要注意什么?
  • 双飞燕布局与圣杯布局的实现原理(选一个);
  • 简单介绍一下浏览器发起页面请求后的渲染过程;
  • TCP三次握手的主要过程;
  • 有哪些HTTP请求方法, get方法与post方法的区别;
  • 介绍一下ES6的新特性, 新API等等;
  • 举例常用的数组方法;
  • 介绍一下JS异步机制: setTimeout, Promise, async等;
  • Promise它的实现方式是什么;
  • JavaScript的模块化规范有哪些? 有什么区别;
  • Vue的实现方法, 生命周期;
  • VirtualDOM是什么, 有什么作用;
  • Vue 与 Jquery 的区别是什么? 为什么要使用Vue?
  • 聚会上两两握手, 总共握了45次, 问有几个人, 给出推导公式;
  • 如果昨天是今天就好了, 那么明天就是星期五了, 请问今天是周几;
  • 一个旅馆有无穷多的房间, 每间房都住满了, 现在又来了一位顾客, 请给出一个方案让他能够入住旅馆;
    • 又问: 如果来了无穷多的顾客呢;
  • 对阿里的技术有什么了解吗?

3.25 二面:二十二分钟


  • Vue的核心模块有哪些?
  • Vue中computed的实现方法? 与watch的区别是什么?
  • 如何并发多个异步请求,并在所有请求执行完后执行回调?(用多种方法实现)

其余部分忘记记录了...印象中貌似和一面差不多, 主要还是考察基础知识和框架使用;

3.29 三面: 三十五分钟


三面主要问的是项目相关, 然后衍生出一些计算机体系结构数据库相关的问题; 明显感觉到比一, 二面深入, 后半段考察的是软件工程师的基本素养, 操作系统相关问题是我的死穴, 然而并没有详细问到😂

  • 介绍自己以及做过的项目;
  • cookie 与 session 的区别;
  • 介绍一下浏览器缓存机制;
  • 设计一个用户登录状态的管理方案?
  • 这个方案中token的作用?
  • XSS攻击与CSRF攻击的区别?
  • CSRF攻击的机制以及防御措施?
  • 基本的HTTP方法和区别;
  • 同源策略的含义, 跨域的解决方法;
  • 网页请求的优化方式;
  • 数据库索引类型;
  • RPC异步IO(问到的时候完全懵了);
  • 虚拟内存的含义;
  • 常用的设计模式和含义;
  • 快排的实现;

4.3 四面: 十五分钟


刚睡完午觉就打过来了, 迷迷糊糊地开始, 迷迷糊糊地结束, 非常快...挂电话时还说如果其他同事有问题会继续问我😂

  • 自我介绍;
  • 介绍一下JavaScript异步机制;
  • 再介绍一下浏览器事件循环;
  • 一道简单的算法题;
  • 动态规划的含义;

4.8 五面: 四十分钟


面试官一开口就表明是终面, 让我慌得不行, 但相比之前难度并没有拔高太多, 比较明显的区别是从抽象层面考察了对于前端工程的理解, 结合项目来谈的话更加偏向实践;

  • 介绍自己;
  • 介绍做过的项目;
  • 阐述一下自己对前端与后端职责的理解;
  • Vuex 的作用是什么, 它的设计思想?
  • cookie, session 的区别是什么? 和 LocalStorage 的区别又是什么?
  • 如果我现在想要对一些特定资源进行缓存, 在一天之内对这些资源的请求都直接读取缓存, 如何设计方案?
  • 跨域问题的产生原因以及解决方案;
  • canvas 动画与 CSS 动画的区别是什么?(从浏览器实现角度考虑)
  • 浏览器重排与重绘的含义, 如何避免大规模重排?
  • 如何减少首屏渲染的时间?
  • Webpack 与 Gulp 这类前端工具的区别和作用? 各自的优势劣势;
  • Webpack 的 tree shaking 机制是如何实现的?
  • 在字符串中查找指定的子串, 给出你能想到的所有方法;
  • 给定1000个圆, 判断它们是否相交, 以[o1, o2]的数组形式返回, 如何实现?
  • 对阿里的技术有什么了解的吗(...真的很爱问这个问题呢)

4.12 HR面: 三十分钟


  • 主要是聊自身状况, 参与的项目, 参加的比赛, 自我评价, 允许的实习时间等等...

总结

面试官们都十分友善, 每次面试结束都会对我提出一定的建议, 让我深刻认识到自己菜的事实, 总之还需要再继续努力嗷🚌