阿里 前端一面
阿里 icbu技术部国际贸易一面
- 面试官介绍部门
- 自我介绍
- 简单介绍项目经历,从项目背景、主要功能、项目中担任什么角色、以及做的难点亮点、最后的收获
- 项目中当时遇到了哪些比较困难的问题?你是如何解决这个问题的?
- 研究生的方向是什么?发过论文了吗?
- 为什么对前端感兴趣?
- 前端的学习过程
- vue2和vue3 区别?
- 为什么要用虚拟DOM?
- display:none 和visibility:hidden的区别
- vue中控制元素显示与否的区别?v-if和v-show的区别
- 有用过promise吗?为什么要用promise?以前没有promise怎么办?
- promise在项目中有真正用过吗?
- promise如何封装超时函数?
- 假设现在有3个后端服务,想询问哪个服务还活着,只要有一个活着,然后就进行下一步操作,这种情况如何实现?
- 初始化的时候,有3个请求,这3个请求没什么关系,假设是3个下拉列表,我想同时请求下来,拿到请求结果后进行下一步操作,但是不想其中任何一个接口失败而导致后面的操作无法进行,这时候应该怎么做?
- promise.all是用来干什么?
- 用过express对吧?express和koa这些有了解吗?
- 洋葱模型有没有了解过?
- 后端设计有用过MVC或者其他什么设计模式吗?
- MVC这3个都代表什么?
- Vue的设计模型是什么?
- 除此之外有学过其他的设计模式吗?
- promise还有什么api或者方法可用?
- promise.then可以接收几个参数?
- Vue2的生命周期?Vue3的生命周期?
- 哪个生命周期方法可以取到DOM
- git命令主要用哪些?创建分支是用什么命令?
- 如果要做代码的分支回滚,用什么命令?
- 闭包是什么意思?
- 箭头函数相比普通函数有什么好处?
- 普通函数改变this指向应该怎么办?这些方法有什么区别?
- 事件委托是什么?在什么场景下会用到?
- 异步加载?async和defer的区别?
- 如果有一个script的资源加载,希望资源加载后的执行顺序和初始顺序位置保持不变,应该用什么方法?
- 数组的常用方法有什么?
- forEach和map再使用场景上有什么区别?
- reduce有用过吗?
- 如果想在数组中删除某两个元素,并且插入一个元素,用什么方法?
- 数组头部删除元素应该怎么做?
- 对数组进行去重应该怎么做?
- 如果要做一个数组的排序应该怎么做?
- 跨域了解过吗?
- cors是什么的缩写?cors的原理?
- 假设发生跨域的错误,前端会看到什么报错?
- 跨域的时候是把接口发出去了嘛?接口是发的时候被拦截还是发到服务器,服务器不给返回还是返回了数据被浏览器给拦截了?
- 让你实现一个动态加载脚本,loadScript函数,你应该怎么设计?功能是:传资源的路径,然后加载到页面上来,应该如何实现?
- 防抖节流了解过吗?如果是秒杀的场景,应该怎么做?如果是搜索呢,应该用什么?
- 学过哪些计算机的课程?
- 用过哪些数据结构?
- 树有哪些类型?二叉树有哪些类型?(完全、满、搜索树、平衡树),面试官补充霍夫曼树
- 霍夫曼树用来做什么的?
- 如果让你做一个深度优先算法,不要用递归,你应该怎么做? 栈?
- 如果是广度优先呢?队列
- 排序算法有哪些?堆排序是怎么做的?
- 给定一个数组,来实现堆排序,你能说一下实现的过程吗?是边插入边调整吗?
- 堆排序的时间复杂度是?空间复杂度是?是稳定的吗?
- 有哪些稳定的排序算法?最快的?归并排序是如何排序的
- 快排是怎么排序的?极端情况下时间复杂度是多少?
- OSI七层网络模型
- HTTP是哪一层
- 传输层有哪些协议?
- TCP和UDP的主要区别是什么?
- 网络组网结构?局域网有哪些网络结构?
- 目前局域网最常用的是哪种结构?局域网的中心是什么? ---让我了解一下哈哈哈,
- 总线结构在数据链路层去实现拥塞控制,用了哪些算法?
- 身边有比较优秀的同学吗?你觉得他们哪些优点是你比较欣赏,想要学习的?
- 对于这些优点,你有什么样的改进或者说之后该怎么提升一下这方面的能力?
- 你做的比较有成就的一件事?这个过程中最困难的点是什么?
- 你觉得你有哪些优点和不足?
- 你有了解一些前沿的东西吗?比如大语言模型、gpt等
- 目前做的方向其实是比较热门的,比较有前景的?为什么从科研方向转到工程方向呢?
- 大语言模型对前端的冲击、展望等,谈一下你的理解
- 那你看好大语言模型对前端的发展吗?
- 假设你已经是正式的前端开发,结合大语言模型你能有哪些想象?能做一些什么样的有意思的事情?
- 反问:现在部门是否还有hc?部门技术栈?流程推进?