公众号查到暂不匹配,二面挂
2.10 滴滴前端一面
第一阶段 介绍项目一 (10min)
1.问命令是如何解析的?√
2.问如果让你手写实现命令行解析器?×
3.那么如果命令冲突或者参数是另一个命令的情况,怎么解决?√
4.问参数里面如果有括号的话,怎么判断括号合法性:括号匹配 ·leetcode经典题
√
分析上面两种方案的优劣√
第二阶段 八股文(10min-31min)
基本数据类型有哪些?√
引用类型有哪些? (答得不全,埋下伏笔)
两者存储方式有哪些区别? √
克隆 (深拷贝与浅拷贝)解决什么问题?
那么你手写一下深拷贝吧,此时开启屏幕共享,大概11分钟左右
问如何优化,以及有哪些问题?
什么是循环引用?
怎么判断循环引用?
对闭包的理解?
事件event的理解?
问 捕获和冒泡的先后顺序以及什么两者区别?
vue3 与 vue2 的区别?
平常开发 ts 和js 的使用情况?
问ts 的好处?
问用ts 实现一个数据类型,获取任何函数的返回值类型?
网上搜到的答案
type ReturnType<T extends (...arg: any) => any> = T extends (...arg:any) => infer R ? R : any;
//infer R 表示待推断的函数返回值。如果T能够赋值给(...arg:any) => infer R则结果是R,否则是any
问用过泛型吗,泛型是什么?
泛型里面定义一个局部泛型?
typeof 与 instanceof 的区别?
instanceof 的实现?能不能人为物理影响prototype
前端工程化:
你了解webpack打包,其实vue实现了一个vite,vite平时用dev,在生产环境build的时候应该走的webpack?
感觉说的有点问题,vue实现了vite?vite开发dev环境不是esbuild,生产环境build不是走的rollup,和webpack有什么关系?
我反问了一句,build打包不是rollup吗?面试官尴尬的说:对对对,rollup,记错了。
接着问了解rollup吗?
网络部分(33min时):
http 和 https 的区别:
在浏览器输入完url过程之后的一系列过程:
想让加载速度变得更快一点怎么办?
手撕代码部分(36min时)
写 n - m的randomInt
问Math.random() 有什么缺陷?
问random存在哪些安全上的问题?
聊第二个项目(40min):
问项目背景?
想找到一键复制的按钮,but 没问一键复制的原理:
问登录逻辑?
让手写登录逻辑?
2-3分钟手写了一套简单的登录逻辑。
const config = {
salt: "zzzzz",
};
// 简单写了一个字符串哈希模拟 md5加密的过程
function md5(str) {
let p = str + config.salt;
let s = "",
mod = 131;
let now = 1;
for (let i = 0; i < p.length; i++) {
now = (now * (p[i].charCodeAt(0) - "a".charCodeAt(0))) % mod;
s += String.fromCharCode(now);
}
return s;
}
// 模拟数据库
const data = [
{
uname: "11",
password: "a12312xcz",
},
];
// 模拟登录逻辑
function login(uname, password) {
let upassword = md5(password);
let flag = false;
// 查询数据库 是否存在数据
data.forEach((u) => {
if (u.uname == uname && u.password == upassword) {
flag = true;
}
});
return flag ? "success" : "password wrong";
}
问for ... break好,还是 forEach 好,又提到了 频率攻击:
2.13 滴滴前端日常实习二面
1. 问怎么学习前端的?
2. 问平常用的vue相关的技术栈?
3. ES6怎么学的?
4. 问解构赋值,50个元素的对象,剔除2个元素(不能使用delete),获取新的对象(写了:let {delete_a, delete_b, ...newData} = data )
5. 手写promise.all ,取消操作里面throw error会不会捕获,为什么不会,会出现什么报错?
6. 浏览器缓存
7. 问ESM规范,和Common JS的区别,问ESM导入导出怎么解决文件的循环引用问题(不会)
8. 问react 函数式组件的理解
9. 布局,项目首页的布局,长列表的优化(答了虚拟列表),问如果加上搜索怎么处理(用computed过滤)
10. 用过哪些时间处理的库
11. 手写时间格式化,比如"2023-02-13 19:00" => "2023年2月13日" ;如果加上"YYYY-MM-DD"这种过滤该怎么写
#我的实习求职记录#