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

知乎前端日常实习一面(已oc)

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

知乎前端日常实习一面(已oc)

面了45分钟左右,面试官评价还可以

  1. 自我介绍,问之前实习过吗?
  2. 问两个项目是做什么的?上线后的情况?// 直接打开屏幕共享介绍的,上线后的数据统计平台用的51LA
  3. 介绍项目是怎么实现的?
  4. 问网站是自己开发的吗?什么技术栈?
  5. 会用react吗?// 了解,写过一个小项目
  6. 介绍第一个项目,聊了项目中的一些功能怎么做的
  7. 介绍第二个项目,聊了项目中的一些功能怎么做的
  8. 又问了一遍react了解多少?// 看文档能写简单功能
  9. ant design 用过form table这些组件吗?// 用过table,看文档复制粘贴,配置数据源,简单的触发事件
  10. table 用过什么?
  11. 做过哪些比较复杂的业务? // 聊了两个,一个是设计模式相关的,一个bug排查修复相关的
  12. 事件循环机制 // 宏任务,微任务....
  13. 项目里面是怎么解决跨域的 // 讲了几种方案
  14. 会用git吗?平常代码怎么存的?
  15. 会用TS吗? // 用过,但用的比较浅

大概剩下30分钟在写这三道题,以及面试官在点评项目中的一些东西三个手写题:

对象属性合并


const obj = [
{ key: "a", val: 1 },
{ key: "a", val: 3 },
{ key: "a", val: 2 },
{ key: "b", val: 4 },
{ key: "a", val: 5 },
];
// result: {a: [1, 2, 3, 5], b: 4}

function transform(arr) {
let res = {};
arr.forEach((el) => {
if (el.key in res) {
if (Array.isArray(res[el.key])) res[el.key] = [...res[el.key], el.val];
else res[el.key] = [res[el.key], el.val];
} else res[el.key] = el.val;
});
return res;
}

console.log(transform(obj)); // { a: [ 1, 3, 2, 5 ], b: 4 }

防抖节流 // 写了一个简单的节流,没写优化版的节流

发布订阅模式 // 写完让优化一下三元运算符的写法,差点翻车

写代码过程中的一些闲聊:

  • vue这些技术栈是自己学的吗?
  • 会ES6的哪些新特性?
  • 问第二个项目是想做成一个社区吗?// 就是一个小工具
  • 那第二个项目和掘金,GitHub,GitLab这些有什么区别,侧重点?
  • 如果不登陆,发布之后如何记录 原发布?
  • 网站上线是不是花了不少钱?
  • 业务场景比较复杂,能接受吗?前端也需要写业务逻辑?
  • 评价感觉项目做的还行...
  • vue原理熟吗?// 了解一点原理,没看过源码;面试官锐评:也就是会用....
  • 有什么想问我的吗?
  • webpack,vite哪个好用一点?
  • 登录是怎么做的?
  • jwt 的理解?
  • ​那你为什么不用 cookie,session之类的呢?
  • ​感觉基础还可以,但我也没问什么太多问题。。。
  • ​gzip
 类似资料: