阅读 2596

阿里健康面试总结

一面电话面,二面现场面试的。整个过程都是循序渐进的,没有一开始就很难的问题(除了直接问源码/原理这种)

据了解阿里健康90%的项目前端技术栈是react,但是我的简历是vue技术栈和小程序比较多,所以很少涉及到react相关的部分。以下是一些面试题

Vue

  1. Vue里template到render经过哪些步骤
  2. Object.defineProperty有哪些缺陷,Vue3为什么要用proxy重构
  3. 修改data里绑定的一个变量的值,页面有没有立即更新,为什么要这样做
  4. vuex的实现原理
  5. vue-router的实现原理

详细描述从浏览器输入一个URL地址到页面渲染的整个过程

  1. http req有哪些参数,分别做什么用的,服务端接收到这些参数会如何做处理
  2. res header头有哪些(说出具体作用)
  3. 怎么做缓存,解释下http缓存机制,什么是强缓存/协商缓存,他们优先级是怎样的
  4. 什么情况下浏览器回返回204/304/301/500等状态码
  5. http2有哪些新特性
  6. http2多路复用和http1 keep-alive的区别
  7. 简单问了下spdy和http2的区别
  8. js加载如何不阻塞dom
  9. html css js这些是怎样被解析的
  10. 一些加载的细节

PWA

  1. PWA有哪些优势,你最喜欢其中哪些功能
  2. Service Worker特征
  3. Service Worker怎么做优化
  4. Service Worker是怎么更新的

css

  1. css实现一个左边定宽,右边自适应的布局,说出你知道的所有的方式
  2. 垂直居中的几种方式,分别用在什么场景
  3. 哪些属性可以开启GPU加速

css问题不多,大概过了一下就

谈项目

  1. jq重构为什么选择vue技术栈,技术选型是怎么考虑的

    回答是从渐进式、侵入性低、方便做类似微前端方面考虑的

  2. 怎么理解微前端,有哪些使用场景,解决了什么问题
  3. webpack怎么优化打包速度,如何优化项目
  4. 谈到了团队会做codereview,然后问 codereview你会注重哪些地方
  5. 在聊codereview的时候引入了一个副作用的概念,然后开始聊函数式

函数式

  1. 函数式优缺点
  2. 什么是纯函数/副作用
  3. 柯里化的作用
  4. 柯里化和闭包的关系
  5. memoize(or memorize?)有哪些业务场景可以用到
  6. 怎么理解组合 compose
  7. 实现一个compose(图方便,用reduce写的的,跟redux的compose实现类似)
  8. compose内部出错返回error了怎么处理
  9. 什么是函子
  10. 前端跟服务端交互,ajax一定是有副作用的,怎么处理
  11. 解释下什么是monad
  12. 后边不会了就没有再继续问(我函数式了解不多)

小程序

  1. 小程序用taro相比原生有哪些好处
  2. 为什么要用taro
  3. 提到了async -> 小程序原生里怎么使用async
  4. generator+co的形式是怎么实现async的
  5. generator和promise的区别和联系
  6. generator怎么实现异步操作(不是很明白,我理解generator跟异步没关系)
  7. 小程序为什么是双线程架构,他是怎样考虑的
  8. 小程序渲染层是webview,那么原生组件是怎么渲染到页面上来的
  9. 为什么要设计原生组件,相比纯JavaScript有哪些好处
  10. 小程序和客户端的通信原理(JSBridge方案)

跟业务/简历无关的面试题

  1. 设计一个扫码登录的流程(前端),包括跟后端是怎样交互的,接口的设计。可以用UML或者其他自己擅长的任意方式描述
  2. 不用eval函数对一个四则运算求值。例如:"2+3*4/6-1"

剩下的大部分时间都在聊业务相关和个人发展,跳槽期望之类的了

avatar