阿里云前端面试

09/14 一面

  1. 自我介绍,前端经历
  2. 长列表渲染优化,异步加载节点信息。元素不定高场景下怎么做虚拟列表。
  3. 性能优化的指标。
  4. XSS注入和SQL注入排查修复。
  5. 微前端技术,qiankun框架,spa和mpa,js隔离、样式隔离。
  6. 通用上传组件,中间件机制洋葱模型。
  7. 低代码平台优势劣势。(问了低代码协议相关,没看过)
  8. 进程线程协程概念及区别。线程共享进程中哪些资源。
  9. 如何写一个死锁。
  10. ES6新增特性,js作用域和块级作用域。
  11. 闭包和箭头函数特性。箭头函数编译后的es5产物(不会QAQ)。
  12. 原型与原型链,es6的class编译成es5的产物。
  13. CommonJS和ESModule区别
  14. Vue3响应式原理,vue2中怎么解决新增属性的响应式。
  15. 跨域解决方法。
  16. 反问。

09/19 笔试

  1. 第一题不记得了,比较简单
  2. 第二题:以下数据结构中,id 代表部门编号,name 是部门名称,parentId 是父部门编号,为 0 代表一级部门,现在要求实现一个 convert 方法,把原始 list 转换成树形结构,parentId 为多少就挂载在该 id 的属性 children 数组下,结构如下:
let list =[
    {id:1,name:'部门A',parentId:0},
    {id:2,name:'部门B',parentId:0},
    {id:3,name:'部门C',parentId:1},
    {id:4,name:'部门D',parentId:1},
    {id:5,name:'部门E',parentId:2},
    {id:6,name:'部门F',parentId:3},
    {id:7,name:'部门G',parentId:2},
    {id:8,name:'部门H',parentId:4}
];
const result = convert(list, ...);

// 转化后
let result = [
    {
      id: 1,
      name: '部门A',
      parentId: 0,
      children: [
        {
          id: 3,
          name: '部门C',
          parentId: 1,
          children: [
            {
              id: 6,
              name: '部门F',
              parentId: 3
            }, {
              id: 16,
              name: '部门L',
              parentId: 3
            }
          ]
        },
        {
          id: 4,
          name: '部门D',
          parentId: 1,
          children: [
            {
              id: 8,
              name: '部门H',
              parentId: 4
            }
          ]
        }
      ]
    },
  ···
];

09/27 二面

基础八股:

  1. TCP为什么三次握手,为什么四次挥手
  2. 跨域解决什么问题,为什么script、img等标签还是可以跨域,只对ajax、dom等有跨域限制。(不太懂)
  3. HTTP缓存,强缓存和协商缓存分别节省了哪些东西。
  4. XSS防御方法、CSRF相关
  5. HTML语义化
  6. TS泛型,有什么作用
  7. 原型链,es6 class 的编译产物(两次了,看来这个一定得会)
  8. 垃圾回收机制,引用计数法、标记清楚法。

简历项目相关:

  1. 微前端作用及优势,spa 、mpa优缺点。为什么不用 iframe 而用 qiankun。微前端带来了哪些额外工作。
  2. webpack 插件相关。打包过程静态资源自动上传 cdn。
  3. 通用上传组件重构维护,分片上传并发控制。(这里扯了好久,问异步任务的并发控制有什么意义,不是真正的并发)应用场景、优化的效果等等。
  4. 反问。

感觉最后没答好,等结果了。

10/18 三面

自我介绍

没有八股和简历提问,主要聊了技术视野和对前端技术未来发展方向的探讨,以及为什么选前端、自身的一些特点等等。

泡池子

10/31 更新,状态从面试中变为等待面试结果

#前端面经#
全部评论
只有两轮技术面吗,哪个部门呀
4 回复 分享
发布于 2023-09-27 17:13 安徽
11
1 回复 分享
发布于 2024-03-08 01:07 山东
9-27里的问题2,实际考的是JSONP跨域。
1 回复 分享
发布于 2023-10-13 17:15 北京

相关推荐

03-28 15:54
已编辑
中国科学技术大学 Web前端
系统开放之前boss上联系面了三家,平均面了两面左右,最后进系统只能录一个,选了dataworks继续面。一般前两轮前端问的多点,三面问点非前端的内容,加上hr四轮左右。记录一下在所有面试过程中面过的前端题,不区分轮次了。阿里云的面试没什么八股,很舒服。项目问的不多,主要问实习工程化和实习介绍在乾象,腾讯的实习难点和亮点当场写一个最近实现的模块/组件,Url filter你的vite插件的功能如何实现vite钩子的执行顺序,你用到哪些钩子,开发和生产钩子有什么不同pnpm优化分包策略INP项目中是怎么做优化的为什么包体积缩小40%,总的LCP时间优化了一半vite预构建vite热更新,讲解从文件增量更新开始的过程vite开发服务器和浏览器之间通信协议(websocket+http1.1),引入http2,http3,  QUICK怎么避免幽灵依赖最佳实践barrels files如何治理tsconfig如何治理peerDependencies和dependencies版本冲突会导致什么,你是如何处理的rspack了解Babel插件怎么写的,babel工作流,babel不同预设的作用vitest,jest+babel / swc Hippy和RN,taro,uniapp区别,优势何在jsbridge通信原理如何设计搜索结果页,怎么管理不同卡片和对应搜索结果不同字段如何解决跨端兼容性问题埋点上报的调用方式和实现打包出来的jsbundle体积开发过程中的不舒适的点yarn转pnpm的过程?怎么避免幽灵依赖?peerDependencies有哪些作用,应用场景有哪些babel的原理和作用过程怎么配置解决兼容性问题Node(项目相关):结合项目问runtime的组成,设计思路quickjs, libuv作用面试官对模块的实现感兴趣,随后依次问了模块的导入导出,cpp层/js层分别怎么实现如何设计模块只初始化一次如何检测模块之间循环依赖如何实现动态加载数据库设计: 实现微信动态评论区只能看到共同好友的评论。
点赞 评论 收藏
分享
评论
5
42
分享

创作者周榜

更多
牛客网
牛客企业服务