个人面经
字数
698 字
阅读时间
3 分钟
某初创 AI 领域公司
前端开发岗,Vue + TypeScript 岗
I Generated a checklist for my preparation.
简单写一下面经吧。不是按顺序的,分了一下类。
基本交流
一开始大部分时间都在介绍自己的项目,其实搓的挺烂的。
用AI写代码吗?如果是通过AI来辅助编程,你会怎么做?
情景问题
输入框高频输入联想(比如百度搜索输入框的下拉联想)如何保持搜索框内容与联想内容的一致性?
我给的回答是使用id进行请求对应,或者利用延迟进行防抖处理;实际的更好的选择可能是请求取消,可以看看下面的链接
如果要对
promise请求进行封装,而非使用await该如何实现?- 创建
Promise实例:使用new Promise((resolve, reject) => { ... })构造函数创建一个新的Promise 实例。 - 执行异步操作: 在Promise 构造函数的回调函数中,执行实际的异步操作。
- 根据结果调用
resolve或reject: - 如果异步操作成功,则调用
resolve(value),并将结果数据作为参数传递。 - 如果异步操作失败,则调用
reject(error),并将错误对象作为参数传递。 - 返回
Promise实例:yourAsyncFunction函数应该返回创建的Promise 实例。
- 创建
JavaScript
// AI Example
function yourAsyncFunction(param) {
return new Promise((resolve, reject) => {
// 模拟异步操作,例如网络请求、定时器等
setTimeout(() => {
const randomNumber = Math.random();
if (randomNum > 0.5) {
resolve({ data: 'Success!', randomNum: randomNum }); // 成功,返回数据
} else {
reject(new Error('Operation failed!')); // 失败,抛出错误
}
}, 1000);
});
}- 如果要一次性发送多个
promise请求,同时要求需要收到所有响应,如何实现promise.all()
- 如果你要实现一个鉴权,你会放在前端还是后端?有没有什么方案
- 问这个是因为简历写了点对后端和安全的了解
- 说了点安全上的问题,提了CAS什么的,还有JWT
代码实战
该公司目前某网站的页面前端帧率过低,卡顿,通过代码发现原因并提出修复方案
- 没找对
- 原因:由于直接操作 DOM 实现背景动效,DOM 修改过于频繁,导致帧率低、卡顿
- 修复:目前方案是从直接操作 DOM 改为通过
Canvas API进行绘制
Kiracoon