当前位置: 首页 > 面试经验 >

2022猿辅导(23届秋招)前端一二三面面经(已offer)

优质
小牛编辑
163浏览
2023-03-28

2022猿辅导(23届秋招)前端一二三面面经(已offer)

一面


8.13



  1. 自我介绍

  2. 介绍一下项目

  3. 介绍项目里解决的问题

  4. 大概讲一下一个项目从 0 到 1 的过程,比如包括 Vue 的配置,Vuex,Vue-Router,指到从 0 到 1 之后可以进行业务开发,不包括业务逻辑部分(纯技术),可以理解为如何实现一个 create-tamplate,比如 Vue CLIcreate-react-app 提供的模板,面试官会根据你讲的实现细节一个个提问

  5. ESLint 作为一个代码检查工具都包括什么东西呢?

  6. ESLint 怎么实现代码检查呢?(比如命令行、配置文件)

  7. ESLint 需要进行怎样的配置实现代码检查呢?

  8. 如何实现代码提交的时候也进行 ESLint 检查呢?(git Hookgit 钩子),比如 Husky

  9. 介绍一下 Vue Router 的两种模式

  10. 域名:www.yfd.com,Path: se,如果使用 Hash 模式,是 www.yfd.com/#se,如果是使用 History 模式,是 www.yfd.com/se,这两个路径对于浏览器和服务端的交互来说有什么不同?

  11. 介绍一下通常项目会对 axios 怎么封装

  12. axios 的拦截器一般会配置什么呢?

  13. 为什么要在请求拦截器中鉴权?而不是在服务端(这个回答不是很好,没说到 token

  14. axios 的响应拦截器一般会配置什么呢?比如状态码

  15. 状态码 401/403 有什么区别?跳转登录用哪个?(403 已经携带了鉴权信息,只是没有鉴权通过,forbidden,即使再跳转登录页也无法登录,401 代表 Unauthorized,即没有获取到鉴权信息,这个时候应该跳转登录页

  16. 响应拦截器对 404 状态码需要做什么呢?处理状态码处理还需要做什么吗?

  17. 有没有和后端约定数据返回的格式?怎么处理?(比如统一的状态码,一般后端会有一个通用返回结果类,CommonResult,通常会有一个状态码枚举值,比如 40001 是成功,40002 是失败...,这个时候前端可以提示相应的信息)

  18. VueMixin 实现原理

  19. 手撕题 - 121. 买卖股票的最佳时机 ,里面的 如果你不能获取任何利润,返回 0 ,改成了 -1


一面面试官的英语好好/(ㄒoㄒ)/~ ~,好几次都听不懂我的一些术语的表达,她还教了我 axios 是怎么读的


二面


8.20



  1. 自我介绍

  2. 实习做了啥

  3. 实习的难点,怎么解决的?

  4. 有没有是优化的点 - 大文件树 - 虚拟列表

    1. 虚拟列表快速滑动时,有啥问题?



  5. 看代码猜输出


// 变量指向
var a = 10;
var obj = {
a: 20,
say: () => {
console.log(this.a);
},
};
obj.say();
var anotherObj = { a: 30 };
obj.say.apply(anotherObj);

// 变量提示
var a = 10;
function foo() {
console.log(a);
let a = 20;
}
foo();
// 暂时性锁区
var a = 10;
function foo() {
console.log(a);
var a = 20;
}
foo();

// promise 系列输出
async function async1() {
console.log("async1 start"); //
await async2();
console.log("async1 end"); //
}

async function async2() {
console.log("async2"); //
}

console.log("script start"); //

setTimeout(function () {
console.log("setTimeout"); //
}, 0);

async1();

new Promise((resolve) => {
console.log("promise1"); //
resolve();
}).then(function () {
console.log("promise2"); //
});
console.log("script end"); //


  1. 介绍一下事件循环

  2. 介绍一下 DOM 渲染和 JS 的关系

  3. 介绍一下 Vue 的双向数据绑定原理

  4. 手撕


// 手写 Promise.prototype.race
function race(arr) {
return new Promise((resolve, reject) => {
for (let i = 0; i < arr.length; i++) {
if (arr[i] instanceof Promise) {
arr[i].then(
(value) => {
resolve(value);
},
(reason) => {
reject(reason);
}
);
} else {
resolve(arr[i]);
}
}
});
}
race([
new Promise((resolve) => setTimeout(resolve(2), 400)),
new Promise((resolve) => setTimeout(resolve(3), 100)),
]).then(
(value) => {
console.log(value);
},
(reason) => {
console.log(reason);
}
);


  1. 介绍一下学习 Vue 的过程(此类问题,可以参考‘你是如何学习一个新技术的’)

  2. 感兴趣的前端方向

  3. 反问


有些可能不太记得了


三面


9.2



  1. 讲一件你觉得最有成就感的事情

  2. 为什么要写这个项目呢?

  3. 服务部署了吗?有域名吗?备案了吗?

  4. 后端用什么写的?

  5. 团队有几个人,怎么分工的?

  6. 这个项目最难的点是在哪?

  7. 项目有用到什么开发工具?是怎么调试的?

  8. 未来希望往哪方向发展?

  9. 写一个钟表,输入时间戳,然后得到时间,比如

    • formatTime(60) // 00:01:00

    • formatTime(3661) // 01:01:01

    • formatTime(86401) // 00:00:01



  10. 写一个轮播图

  11. 反问

  12. 前端业务的考核标准

    1. 产出,两方面,交付效率和交付质量

      1. 交付效率,交付的稳定性,排期预估,总能在排期内完成

      2. 交付质量,上线之后的 bug 多不多





#前端面经##面经##猿辅导##猿辅导22届秋招面试##猿辅导2022秋招#
 类似资料: