# 一、前言
听说阿里钉钉这边流程要走好久好久,技术面总共三轮,之后还有 HR 和主管面,也就是说需要 五轮 面试才能够进,属实是精英人才筛选计划了。
面试官人比较和蔼,我在描述我的一些项目的时候还会附和我点点头,让我整场面试体验比较好。
不过截止到现在 5.17,已经过去了 4 天的时间,一面还是没有结果,我也不知道是否通过了。不过通过了我也不打算进行第二轮面试就是了(笑)
# 二、题目列表
-
上来居然是面试官直接开始介绍他们部门补签主要负责的项目以及相关的技术栈,并且向我描述了实习生能够参与的一些内容,让我反问都不知道反问什么内容。
-
自我介绍 + 项目介绍。项目主要讲的是我两个偏纯技术的项目,一个是 Markdown 编辑渲染器、一个是名为 Create-Neat 的开源脚手架。这两个项目也聊了好久,聊了有半个小时(感觉每一次面试基本聊项目都聊这么久)。
-
了解过 XSS 攻击吗?怎么对其进行预防?怎么能够在你刚刚提的这个 Markdown 渲染器中实现对 XSS 的预防呢?
-
讲一下 Vue3 当中的动态组件引入机制,并且你是怎么使用这个机制来对你在目前公司负责的这个项目进行优化的呢?
-
讲一下前端的 SPA ,现在的 SPA 应用都是怎么实现的呢?
-
history 和 hash 两种路由模式有什么区别?
-
使用 history API 的时候有个问题,就是一旦用户在某个 url 处进行页面刷新后,如果不做任何配置就会产生 404 的报错,那需要怎么做去解决这个问题呢?
-
SPA 单页面应用往往面临着首屏加载慢的问题,你可以举一些首屏加载优化的手段吗?
-
讲一下 SSG 和 SSR 。
-
怎么去保存单个表单组件的状态,使得用户在进行路由回退之后不用重新填写表单?
-
vite 为什么比 webpack 要快?vite 本身的实现和 webpack 比起来有哪些不一样的地方?
这里犯了一个究极大失误,把 esbuild 和 rollup 两个工具的打包环境说反了,esbuild 说成生产环境了,rollup 说成开发环境了,居然面试官没有指出我的错误
-
反问环节。
-
代码题:你需要实现一个函数,这个函数可以接受一个字符串,你需要找出这个字符串中连续重复出现次数最多的字符,并且打印这个字符的起始位置和结束位置。如果有两个重复次数一样的字符,就展示最先出现的一个。
-
代码题:实现一个类,这个类中有两个函数,第一个函数接受一个 url 字符串,将这个字符串中所有的查询参数都提取出来,组装成一个对象之后返回,如果有重复的属性,需要将其转为数组;第二个函数是第一个函数的逆向,接受一个键值对对象,将其转成查询参数字符串返回。
-
场景题:写一个 Vue/React 组件,需要展示当前浏览器屏幕的宽度、高度以及滚动条滚动的距离。
# 三、后记
这个面试流程属实有点怪,居然把我最害怕的代码题放到反问环节后面。不过整场面试氛围都还好,基本上全都答得出来,而且面试官看得出来是想主动和我去进行一些技术交流的,总体还是比较满意。
不过这么久都没通知,我估计八成也是寄了吧。