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秋招#
全部评论
老哥去了猿辅导吗
1 回复
分享
发布于 2023-02-01 22:00 广东
写轮播图嘛
点赞 回复
分享
发布于 2023-02-16 14:37 广东
联易融
校招火热招聘中
官网直投
想问下老哥为啥会被问这么多ESLint的内容啊,是因为简历上写了么,有点虚
点赞 回复
分享
发布于 2023-07-14 23:44 浙江

相关推荐

头像
不愿透露姓名的神秘牛友
04-08 20:49
已编辑
字节跳动 前端开发其它 20 本科其他
点赞 评论 收藏
转发
17 59 评论
分享
牛客网
牛客企业服务