滴滴前端日常实习一二面

公众号查到暂不匹配,二面挂

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"这种过滤该怎么写
#我的实习求职记录#
全部评论
楼主太强了,这面的看的我绝望
1 回复 分享
发布于 2023-02-13 22:20 湖北
一次面试要2个小时?
1 回复 分享
发布于 2023-02-13 20:03 爱尔兰
比去年秋招都难
点赞 回复 分享
发布于 2023-02-26 00:09 辽宁
大佬是如何准备面试的啊?普通的二本的我也想去大厂实习
点赞 回复 分享
发布于 2023-02-25 15:35 河南
难的一批
点赞 回复 分享
发布于 2023-02-21 18:06 四川
可以问一下是哪个部门吗
点赞 回复 分享
发布于 2023-02-20 22:30 湖北
你这面经题目,我明天面试好害怕啊!!!
点赞 回复 分享
发布于 2023-02-14 14:42 湖北
命令是如何解析的?
点赞 回复 分享
发布于 2023-02-14 13:05 安徽
这二面也太离谱了
点赞 回复 分享
发布于 2023-02-14 10:35 江苏
我上个月面滴滴的时候还都没有这么难的
点赞 回复 分享
发布于 2023-02-14 07:51 上海
这是要故意把人问死
点赞 回复 分享
发布于 2023-02-13 20:02 河南

相关推荐

评论
14
60
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务