Skip to content

2024-面试记录

1、Pixocial 像素互联

面试日期:2024-08-07

面试过程:

  1. 自我介绍
  2. 在职还是离职?为什么考虑换个工作?
  3. 询问工作经历
  4. 为什么要从成都往深圳跑?
  5. 对下一份工作的期望
  6. 拿之前工作经历中最有挑战的事情讲一下
  7. 假如让你负责一个项目,如何进行技术选型?
  8. 在之前的工作中有没有线上事故?如何去解决和定位的?
  9. React 技术了解程度
  10. node 有接触和了解吗?
  11. express 的中间件是如何实现的?
  12. node 事件循环和浏览器事件循环有什么差异?
  13. 如何用 node 注册一个命令行?
  14. 前端是如何进行性能检测的?
  15. 前端是怎么检测首屏加载性能的?
  16. 浏览器两个 tab 页面如何进行交互?比如 A 页面的按钮点击后,B 页面立刻进行响应
  17. 手撕代码 - 控制并发请求
  18. 反问环节

岗位需求:全栈(用 node)

2、字节跳动(火山引擎,云相关)

面试日期:2024-08-14

面试过程:

  1. 自我介绍
  2. 在现在的公司待多久了?主要做些什么事情?
  3. 除了业务相关,还参加过什么前端工程化的事情?
  4. ESLint 和 Prettier 作用有啥不一样
  5. ESLint 如何检测语法错误的?
  6. 抽象语法树的大概结构有了解过吗?长啥样
  7. 数组和单链表数据结构有啥不同?业务场景有啥不同
  8. 业务上控制台有多云多语言的描述是什么,能解释下吗?具体方案是怎么样的
  9. 该怎么缩短词条整个流程?
  10. 词条的打包部署流程是怎么样的?如何进行切换?
  11. webpack 打包速度优化有哪些?
  12. 打包的多线程是 nodejs 的多线程吗?有了解过怎么实现的吗?
  13. 进程和线程有啥区别?资源共享的范围和能力
  14. 进程之间的通信该怎么做?
  15. 手撕代码:

image.png

  1. 接口请求慢可能的原因是什么?
  2. 业务上接口请求的过程是怎样的?权限认证是怎么做的?
  3. 业务上有自己的 node 服务吗?BFF
  4. SSO 登录有哪几方参与?过程是怎么样的?
  5. 百度网页样式是怎么兼容的?在电脑上和在手机上是怎么做的

了解公司的技术栈、技术细节

3、瀚博半导体

面试日期:2024-08-16

面试过程:

  1. 自我介绍
  2. 做过的项目中,承担哪些角色?亮点有哪些?
  3. 前端开发产出的文档有哪些类型?
  4. nodejs 中主要流的类型(Stream)
  5. nodejs 热更新是怎么实现的?
  6. nginx 如何实现跨域操作的?实现的原理、步骤?
  7. echarts 如何进行优化?
  8. css 预处理器用哪个比较多?平时常用的特性有哪些?
  9. 闭包的用途是什么?
  10. JS 中的宏任务和微任务有哪些?
  11. 讲一下事件循环的机制?怎么去执行的?
  12. react class 组件生命周期有哪些?
  13. react hooks 有哪些?
  14. react useEffect 的作用有哪些?
  15. 虚拟 DOM 有了解吗?工作的原理讲一下
  16. react 和 vue 相同点、区别
  17. vue2 是怎么去实现双向绑定的?
  18. 打印 vue2 属性的结果是什么?
  19. 讲一下计算属性、普通属性和方法的区别
  20. css 选择器的优先级从高到低讲一下,!important和内联哪个高?内联和 id 哪个高?
  21. css 常用的布局有哪些?flex 和 grid 布局一些常见的属性
  22. 常用的工具库有哪些?(loadash 常用的方法有哪些)
  23. JS 的基本属性,undefinednull有啥区别?NaN用 typeof 检查会是啥结果
  24. 简单看下一个 react 优化的题目
  25. 反问环节

4、德特赛维

面试日期:2024-08-21

面试过程:

  1. 自我介绍
  2. 为什么想换公司?
  3. 讲一下工作中做的比较好的应用或产品
  4. 公司项目语言切换是怎么实现的?
  5. 讲一下自己做过哪些用户体验的优化?
  6. 讲一下自己做过的性能优化
  7. 表格编辑器如何进行优化?比如 100 个表头
  8. css 预处理器用过哪些?有哪些比较好用的点?
  9. 一键换肤方案?像 element-ui 定义了多套主题,如何进行切换?
  10. flex 布局熟不熟?flex: 1 代表什么?flex-shrink: 0 代表什么?
  11. 常用的 flex 属性有哪些?
  12. 写样式会单独一个一个写 class 吗?(想问的是是否使用 tailwind-css)
  13. grid 布局用过没?
  14. reduce 方法用过没?
  15. 如何快速创建长度为 30 的有效数组?new Array(30) 表示什么?是不是已经有 30 个内存空间?只是一个声明吗?
  16. forEach、map、filter 的区别,如何中断?
  17. created、watch 执行顺序,如何让 watch 先执行?
  18. vue 源码有看过吗?
  19. 有多久没做 vue 项目了?
  20. webpack 使用过吗?怎么动态引入组件?(有某个方法)
  21. 反问环节

5、探迹科技(一面)

面试日期:2024-08-25

面试过程:

  1. 自我介绍
  2. 工作中有用到 react 吗?
  3. 工作中用到的 Angular 版本有哪些?
  4. 工作中的工作内容分为哪些部分?
  5. 前端开发中有哪些操作会导致内存泄露?
  6. 前端开发中有哪些缓存?
  7. Angular 路由中 hash 路由和 history 路由两者的区别、优劣势
  8. 浏览器两个标签页如何进行通信?
  9. 前端进行接口请求时,cookie 需要我们手动加上去吗?谁帮我们加上去的?
  10. 跨域情况下,cookie 会被携带吗?如何拿到对应的 cookie?
  11. webpack loader 和 plugin 的区别
  12. webpack plugin 能做 loader 的工作
  13. webpack 如何提升构建速度?如何进行优化?
  14. 本地开发 webpack 热更新原理
  15. 本地文件改变文本,为什么在页面上能响应更新?怎么知道改变的是具体哪个文件?
  16. 如何用 JS 实现二叉树的广度遍历?
  17. 项目上的技术攻坚(难点)有吗?讲一讲
  18. 换工作的原因

5、探迹科技(二面)

面试日期:2024-08-25

面试过程:

  1. 自我介绍
  2. 如何实现 Promise.race() 方法
  3. 写 JS 时,如何避免内存泄露?
  4. 都有用过哪些 Chrome 浏览器开发者工具
  5. 实现一个方法,实现版本号排序(v1.0.1, v1.0.2),方法的复杂度是多少?
  6. http2.0 有哪些新的特性?工作中有用到过、配置过没有?
  7. 简历中有提到后端知识,实际工作中有用到过吗?
  8. 为什么 nodejs 是单线程的却能够处理高并发场景?
  9. nodejs 单线程和 java 多线程的对比
  10. 最近在学些什么?看哪些方面的知识?
  11. IntersectionObserver 底层原理有了解吗?
  12. 反问环节

6、UMU

面试日期:2024-09-05

面试过程:

  1. 简单的自我介绍
  2. ts 中 infer 的使用场景
  3. 实现一个类型体操运算,求出 Promise 携带的类型(手写代码)
  4. Vue,React,Angular 框架的使用经验
  5. ES6 Symbol 了解吗?如何使用?
  6. ES6 新增的数据类型有哪些?
  7. null 和 undefined 有什么区别?
  8. 基础数据类型存放在内存哪里?
  9. 函数调用的临时变量,入参是存放在内存哪里?
  10. 非原始值类型是存放在哪里的?
  11. JS 垃圾回收机制是怎么样的?
  12. Map 和 Set 了解吗?Map 和 Object 有啥区别?
  13. let,const 和 var 有啥区别?
  14. 箭头函数和普通函数有什么区别?
  15. 构造函数的执行过程?
  16. arguments 和数组有啥区别?如何进行 forEach 进行调用?列举所有可能方式
  17. 有哪些场景也有类数组
  18. getElementsByClassName 获取的单个元素是什么类型?
  19. 在 css 里隐藏某个元素有哪些方式?
  20. visibility 和 opacity 隐藏元素有啥区别?
  21. 用 css 如何屏蔽鼠标事件?
  22. css 选择器的优先级?
  23. 如何选择元素的相邻元素?
  24. HTTP 的缓存策略?
  25. webpack 打包后的文件一般用什么缓存?
  26. option 请求有了解吗?跨域预请求
  27. 跨域是怎么样的概念,父域和子域 cookie 如何处理的?
  28. 最近的学习方向?学习分享?
  29. 反问环节?

7、百度(爱企查)

面试日期:2024-09-11

面试过程:

  1. 自我介绍
  2. 手撕代码 - CSS 实现布局(见布局场景题-1
  3. BFC 是什么?怎么实现?
  4. 行内元素和块级元素的区别
  5. 行内元素外边距、内边距的设置情况
  6. JS 事件循环机制
  7. 手撕代码 - JS 事件循环机制场景题(见事件循环机制-场景题-场景题三
  8. 手撕代码 - 实现 firstUniqueChar 方法
  9. 在 vue2 中 $route$router 的区别
  10. vue2 在循环中写不写 key 的区别(虚拟 DOM)
  11. vue3 相对于 vue2 的区别
  12. Proxy 替换 Object.defineProperty 解决了什么问题?
  13. 响应式原理是什么?有看源码吗?
  14. 离职原因是什么?
  15. 返回环节

8、京东(人资系统)

面试日期:2024-09-14

面试过程:

  1. 自我介绍
  2. 现在岗位负责哪些业务?聊项目
  3. vue2 数据双向绑定是怎么实现的?
  4. 什么情况下更新数据会失效?在运行过程中添加一个属性,能被监听到吗?
  5. vue3 Proxy 方案能介绍一下吗?
  6. vue computed 如何知道自己的依赖项是什么?
  7. 发布订阅的过程是怎么样的?
  8. 依赖收集具体是怎么做的呢?
  9. 排序知道的有哪些?
  10. 冒泡排序的时间复杂度?快排的时间复杂度?
  11. 堆本质上是什么存储结构?
  12. 二叉树和平衡二叉树有什么区别?
  13. 重新换工作的原因?
  14. 对于职业的规划是怎么样的?
  15. 反问环节

9、HABBY(游戏公司)

面试日期:2024-09-14

面试过程:

  1. 自我介绍
  2. 在公司的工作经验介绍
  3. JS 有哪些基本数据类型
  4. 有个变量代表金币,随着时间的增加一直无限增加,用哪种类型存储合适?
  5. setTimeout 第二个的时间会在什么时候执行?
  6. 如何让代码执行等待 2 秒钟,你如何实现?
  7. 如何实现事件监听类,用什么结构实现?
  8. 如何函数中 this 上下文不丢失?
  9. 移动端屏幕自适应如何实现的?
  10. 前端网络安全相关的需要考虑哪些?
  11. callapply 有什么区别?
  12. 0.1 + 0.2 为什么不能执行判断是否等于 0.3
  13. ===== 的区别?
  14. 你作为一个团队负责人?团队技术选型从哪些方面考虑?
  15. JS 是单线程,Promise.all 传入的数组中,前两个操作都是发 http 请求,js 是单线程的,为啥可以并发 3 个操作?
  16. 手撕代码 - 求 n 的阶乘
  17. 手撕代码 - 冒泡排序
  18. 手撕代码 - 二叉树(先、中、后序)非递归遍历
  19. 反问环节

10、快手(效率工程部)

面试日期:2024-09-18

面试过程:

  1. 自我介绍
  2. 判断函数执行结果 - 原型链
Details

说出以下代码的输出结果:

js
function Foo() {
    this.a = 1;
    return {
        a: 4,
        b: 5
    };
}

Foo.prototype.a = 5;
Foo.prototype.b = 7;
Foo.prototype.c = 8;

const o = new Foo();
console.log(o.a); // 4
console.log(o.b); // 5
console.log(o.c); // undefined

手写 new 的过程:

js
function myNew(Obj, ...args) {
    const obj = Object.create(Obj.prototype);
    const res = Obj.apply(obj, args);
    return typeof res === 'object' ? res : obj;
}
  1. 判断函数执行结果 - 函数作用域链
Details
js
var count = 10;
function a() {
    return count + 10;
}
function b() {
    var count = 20;
    return a() + 10;
}

console.log(b()); // 30
  1. 判断函数执行结果 - 函数原型、对象的关系
Details
js
Function.prototype.a = () => console.log(1);
Function.prototype.b = () => console.log(2);
Object.prototype.a = () => console.log(3);

function Foo() {}

const o = new Foo();
o.a(); // 3
o.b(); // TypeError(o.b 是 undefined)
  1. 手撕代码 - TS 类型运算
Details
ts
// 实现 Pick
type MyPick<T, K extends keyof T> = {
    [key in K]: T[key];
};

// 实现 Last:找到数组中最后一个类型
type MyLast<T> = T extends [...unknown[], infer R] ? R : never;
  1. 手撕代码 - 用二分查找方法,找到第一个等于给定值的元素索引,数组有重复值
Details
js
function searchFirst(nums, target) {
    let left = 0;
    let right = nums.length - 1;

    while (left < right) {
        const mid = (left + right) >> 1;
        if (nums[mid] < target) {
            left = mid + 1;
        } else if (nums[mid] === target) {
            right = mid;
        } else {
            right = mid - 1;
        }
    }

    return nums[left] === target ? left : -1;
}
  1. 介绍一下工作经历
  2. 当前工作中,前端工作量主要做什么?
  3. 介绍一下项目国际化方案,有了解过业界国际化方案是怎么做的吗?i18n 只是运行时
  4. 项目中的页面性能优化有做过哪些事?
  5. 页面中列表数量特别大,如何防止页面滚动?虚拟滚动具体是怎么实现的?
  6. 虚拟列表执行后 DOM 树少了,在页面调试时如何搜索那些没有渲染的项?
  7. 项目选型为什么使用 E2E 作为自动化测试?
  8. UI 变动后,测试用例就得重写?用例测试的稳定性如何保障?为什么不使用单元测试?
  9. 反问环节

11、SLB(外企)

面试日期:2024-09-19

面试过程:

面试官 A:

  1. 英语自我介绍
  2. 和面试官英语口语问答
  3. Angular 组件和指令的区别
  4. Angular 有哪些类型的指令,在项目中写过哪些?
  5. Angular 组件 standalone 用过没,和普通组件的区别是什么?带来了什么好处?
  6. Angular 布局组件设计,讲讲设计思路
  7. Angular Service 如何放弃单例,分别给组件提供不同的示例?父子组件如何独立?
  8. Angular 脏数据检测,如何让组件避免不必要的检测?如何通知组件进行变更?
  9. 对 Angular Zone 的理解,新版本准备用什么来替换它?
  10. Angular 如何对组件进行样式隔离的?如何 override 组件下的样式,避免全局影响?
  11. css 字体大小单位 em 和 rem 是什么?做响应式设计的话?需要做些什么效果?
  12. Angular Router 生命周期有了解吗?
  13. 进入页面如何提前拿后端数据?
  14. Angular 有用过 ngrx,redux 状态管理三方库吗?
  15. RxJS 冷、热状态概念了解吗?平常经常用哪些操作符?使用时如何避免内存泄露?
  16. 对 MVVM 模型的了解是什么?带来了哪些好处?模型中 VM 对应的是什么?
  17. 平常开发过程中有写过用例吗?用了哪些技术栈?如何保障用例的稳定性?

面试官 B:

  1. 日常开发中对数据的处理多吗?日常工作流程是怎么样的?
  2. Angular 开发中有用过哪些持久化三方库没有?
  3. 项目开发中有做过单元测试、端到端测试吗?技术栈是怎样的?
  4. 项目代码安全、质量值是怎么保证的?
  5. 项目中有用到过算法吗?
  6. Angular 子组件和父组件通信怎么操作的?
  7. 讲一下 RxJS Subject
  8. 反问环节

12、猫眼娱乐(一面)

面试日期:2024-09-24

面试过程:

  1. 自我介绍
  2. 讲一下项目架构
  3. 是前后端分离的吗?跨域问题是怎么解决的?讲一下前端是如何处理跨域的
  4. shell 了解的怎么样?能够写 shell 脚本吗?
  5. linux 用哪个命令判断某个端口被占用?
  6. 平时有排查过前端问题吗?比如页面报 502,504 如何排查?页面调试排查?
  7. 除了浏览器断点调试,还有其它调试方式可用吗?比如 NodeJS 如何调试?
  8. css 预渲染器和原生 css 的区别?
  9. 今年新发布的 css,js api 有了解过吗?简单介绍一下
  10. 如果项目想要用新的 JS 语法,有什么办法?
  11. webpack 了解程度,自己有配置过吗?
  12. loader 的作用是什么?加载解析顺序是怎么样的?
  13. vite 有了解过吗?
  14. Three Shanking 知道是什么吗?
  15. 自己在项目中封装过组件吗?
  16. 讲一下自己做过的技术分享
  17. 组件开发中如何避免样式冲突?
  18. 如何监听页面性能?如何提升页面的性能?
  19. 讲一下 CDN 服务,平时是怎么使用的?
  20. 深拷贝和浅拷贝有什么区别?如何实现深度拷贝
  21. 手撕代码

13、微派网络(青藤之恋,一面)

面试日期:2024-09-25

面试过程:

  1. 自我介绍
  2. 讲一下项目中的技术难点
  3. 讲一下项目的国际化方案
  4. 开发项目过程中,做过哪些性能优化?
  5. SSR 了解多吗?从发起请求到生成 html,这个过程是怎样的?
  6. 对 TS 的了解程度?写过复杂的类型没有?
  7. 介绍下 JS 的原型链
  8. 讲一下闭包
  9. 讲一下 JS this 的指向
  10. 讲一下前端安全
  11. 讲一下前端缓存(cookie,storage,强缓存、协商缓存)
  12. 如何使 localStorage 具有失效时间?
  13. 讲一下浏览器的事件循环机制
  14. 给出代码输出结果
  15. 手撕代码 - 无重复最长子串长度
  16. 反问环节

16、猫眼娱乐(二面)

面试日期:2024-09-26

面试过程:

  1. 自我介绍
  2. 换工作的原因?
  3. 介绍一下现在的薪酬待遇、述求?聊聊职业述求
  4. 讲一下做的业务是干什么的?
  5. 讲一下自己封装的组件
  6. 讲一下项目国际化方案
  7. 讲一下三大框架的区别,讲一下虚拟 DOM,变更检测
  8. 围绕业务的一系列问题
  9. 反问环节

15、高途(产研,一面)

面试日期:2024-09-27

面试过程:

  1. 自我介绍
  2. 介绍一下最近的项目
  3. 有做过 ECharts 图表的封装吗?
  4. 介绍一下新老代码兼容性问题是如何处理的?
  5. 介绍一下你对微前端架构的了解
  6. 有了解过 qiankun 是如何做 JS 隔离和 CSS 隔离的?
  7. 对打包工具的使用情况,webpack 具体使用过哪些?
  8. 为什么 vite 比 webpack 更快?
  9. 介绍一下最近一两年遇到过最有挑战的事情
  10. 需求中拖拽功能有了解过三方库吗?为什么没有选择使用三方库?
  11. 项目中做过的性能优化方式有哪些?webpack 有哪些配置?比如包体积
  12. 最新有学习比较新的技术吗?
  13. react 了解程度,和 vue 框架对比
  14. 给出代码输出结果
Details
js
function foo() {
    console.log(a);
}

function bar() {
    var a = 3;
    console.log(this.a);
    foo();
}

var a = 2;
bar();

// 2
// 2
js
var pro = new Promise((res, rej) => {
    res(1);
});
pro.then((res) => {
    console.log(res);
});
console.log(2);
pro.then((res) => {
    console.log(res);
}).then((res) => {
    console.log(res);
});
  1. 手撕代码 - 倒计时
Details
js
// 组件接收的参数为秒,展示效果为“剩余:HH:MM:SS”
// 剩余:00:01:40
// 剩余:00:01:39
// 剩余:00:01:38
// ...
function printTime(n) {
    const s = n % 60;
    const m = Math.floor(n / 60) % 60;
    const h = Math.floor(n / 3600) % 24;
    const format = (a) => (a < 10 ? `0${a}` : String(a));

    console.log(`剩余:${format(h)}:${format(m)}:${format(s)}`);
}

function countDown(n) {
    let cur = n;

    const timer = setInterval(() => {
        printTime(cur--);

        if (cur < 0) {
            clearInterval(timer);
        }
    }, 1000);
}
  1. 反问环节

16、微派网络(青藤之恋,二面)

面试日期:2024-09-29

面试过程:

  1. 自我介绍
  2. 详细介绍百度低代码配置平台的功能
  3. 平台配置到页面输出,这个过程是怎么实现的?
  4. 低代码配置平台是怎么做版本管理的?
  5. 讲一下最近项目遇到的难点,怎么去解决它的?
  6. 自定义标注怎么保证右边渲染数据和渲染页面是保持一致的?
  7. Angular 数据更新的 api,最新特性有了解过吗?
  8. 有了解过 vue3 源码 patch 过程有什么提升、优化?
  9. 手撕代码 - 进程优先级调度
  10. 反问环节

17、高途(产研,二面)

面试日期:2024-10-09

面试过程:

  1. 自我介绍
  2. 是否在职,换工作的原因?
  3. 最近在做什么项目?
  4. 介绍下项目的背景?主要的功能是什么?
  5. 项目中遇到的技术难点?
  6. 项目中自定义标注的拖拽能力?为什么最终选择自研没有选择三方库?
  7. 技术难点细节探讨
  8. 反问环节

18、元保数科

面试日期:2024-10-10

面试过程:

  1. 自我介绍
  2. JS 的基础类型有哪些?
  3. Symbol 类型是用来干啥的,平时开发有用到过吗?
  4. !x, x 什么情况下为 true,选择题(注意 !NaN 结果为 true)
  5. 说一下对 this 的理解
  6. this 指向题目,说一下输出结果
  7. 说一下对作用域的理解
  8. 介绍下闭包,实际开发中有用到过闭包吗?如何避免内存泄露
  9. 闭包应用,看代码说下输出结果
  10. JS 是一个单线程语言,它是如何实现异步的?讲一下事件循环的机制
  11. 讲一下 ES6 经常使用的语法
  12. 浏览器渲染网页流程
  13. css 选择器的优先级从高到低讲一下
  14. 两个相同类名的样式,最终应用结果是怎样的
  15. react 缺乏实际工作经验,澄清一下
  16. 讲一下三大框架的区别
  17. 百度工作中的 SSR 渲染是怎样的?
  18. 渲染结果是完全渲染的 html 还是哪种方式?
  19. 百度 SSR 渲染状态管理是怎么处理的?
  20. 低代码 SSR 渲染的页面是怎么调试的?
  21. 低代码配置页面从 H5 到 PC 是怎么适配页面的?
  22. 项目做过的体验优化、性能优化讲一下
  23. SSR 渲染比 SPA 渲染的优势有哪些?怎么查看渲染指标?
  24. 项目开发中对 webpack 做过的配置有哪些?
  25. 如何使用双栈模拟队列?
  26. 如何在不使用第三个变量的情况下交换两个变量的值?
  27. 反问环节(当前团队主要做哪些业务?团队规模有多大?需求的迭代速度是怎样的?)

19、天润融通(一面)

面试日期:2024-10-16

面试过程:

  1. 自我介绍
  2. 讲一下 css 盒模型
  3. 如何实现双飞羽翼、圣杯布局(左中右)?
  4. 有三个 div,如何实现前两个 div 居左,第三个 div 居右?
  5. 如何实现字体小于 12px?设置以后的占位情况是怎样的?
  6. css 大量数据、高频动画会导致重绘,如何提升页面的性能?
  7. es6+ 语法特性有哪些?
  8. 讲一下 call、apply、bind 方法的区别
  9. Symbol 是否可以被序列化?
  10. js 基础类型有哪些?
  11. 简单说下防抖、节流的原理以及应用场景,搜索框应该用防抖还是节流?
  12. 讲一下事件循环的机制
  13. 哪些场景下会用到递归?递归有什么缺陷?有哪些替换方案?
  14. 具体讲一下如何使用栈实现二叉树的非递归遍历
  15. 讲一下“跳台阶”的算法实现方案
  16. 前端有哪些常用的设计模式?
  17. 有了解过 websocket 吗?
  18. 开发过程跨域问题是如何解决的?
  19. 讲一下前端的性能优化方案
  20. 有具体了解过 Angular 解析、渲染原理没有?
  21. Angular 哪些写法容易导致性能问题?
  22. 讲一下项目中做的比较有成就感的东西
  23. Vue 使用经验怎么样?
  24. 讲一下低代码平台的理解
  25. 反问环境(公司团队规模和分布情况、出差情况、技术基建情况、工作时间)

20、高途(运营平台,二面)

面试日期:2024-10-17

面试过程:

  1. 自我介绍
  2. 讲一下简历上各个经历换工作的原因
  3. 讲一个比较有成果支撑力度的项目
  4. 大文件如何实现断点续传?整个过程是怎样的?什么情况下会中断大文件上传?
  5. 当前用的组件库是哪个?自己有封装过通用的组件吗?封装组件会被很多人使用,如何保证组件的质量?
  6. 网页如何控制广告 24 小时只弹出一次?页面中是否需要轮询或者定时器?
  7. 手撕代码 - 实现数组的 reduce 方法
Details
js
// TODO 请在这里编写代码
const arr = [1, 2, 3];
const sum = arr.reduce((prev, curr) => prev + curr, 0);

Array.prototype.myReduce = function (fn, init) {
    let prev = init;
    this.forEach((item) => {
        prev = fn(prev, item);
    });

    return prev;
};
  1. 手撕代码 - 打印星期几
Details
js
// 现有一个数组dateList,形如[1,2,3,4],将其转化为汉字星期 分段数组。
// 例如: [1,2,3]  => ['周一至周三'],[1,3,4,6,7] => ['周一','周三至周四', '周六至周日']
function convertWeekPeriodToDays(weekPeriods) {
    const weekDays = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'];
    // weekPeriods 形如 [1,2,3]
    // 返回 ['周一至周三']
    const res = [];

    for (let i = 0; i < weekPeriods.length; ) {
        let start = i;
        let end = i;

        i++;
        while (weekPeriods[i] === weekPeriods[end] + 1) {
            end = i++;
        }

        if (start === end) {
            res.push(weekDays[start - 1]);
        } else {
            res.push(`${weekDays[start - 1]}至${weekDays[end - 1]}`);
        }
    }

    return res;
}
  1. 最近有学什么知识吗?通过什么方式来学?
  2. 反问环节

21、天润融通(二面)

面试日期:2024-10-25

面试过程:

  1. 自我介绍
  2. 说一下最有成就感的项目?哪些功能做的比较好
  3. 讲讲自己的优势和不足?
  4. 讲一下 Restful 接口设计
  5. 讲一下自己的职业规划
  6. Angular 和 Vue 有什么优缺点?
  7. 简单说下 Vue 的 diff 算法
  8. diff 算法的时间复杂度是多少?
  9. 在当前公司的有哪些经验积累?
  10. 各个工作段换工作的原因?
  11. 对下份工作的行业、技术的期望
  12. 反问环节

基于 MIT 许可发布