一 目录
不折腾的前端,和咸鱼有什么区别
目录 |
---|
一 目录 |
二 前言 |
三 360 |
3.1 口试题 |
3.2 面试题 |
四 bilibili |
4.1 一面 |
4.2 二面 |
4.3 后续 |
二 前言
返回目录
2020 面试其实不止 2 家,然而一是我偷懒,二是我感觉如果小伙伴将 2020 求职系列认认真真看过了,一面题都不是问题,问题是二面问我的项目的。
所以心愿小伙伴们看完这篇文章后,能扫视下本人的我的项目教训,能不能做更好的晋升。
三 360
返回目录
360 是搭高铁过来现场面的,顺带看看内推我的大佬。
3.1 口试题
返回目录
- 行内元素和块级元素
- CSS 选择器
- 创立、增加、移除、复制 DOM 节点
- 数组
pop()
、push()
、shift()
、unshift()
的作用 - 判断变量类型的办法、差别和局限
- 变量晋升、函数晋升、
Event Loop
及var
变量净化做打印题 - 数组去重多种形式实现
- 千分位宰割数字:
1234567890.11
->1,234,567,890.11
- 手写防抖和节流
- 实现柯里化
add(1)(2)(3)
- 算法题:
有 N 天未打卡及漏打卡数组 missDays,有 M 张补打卡,总共有 allDays 天,应用补打卡,取得最长间断打卡天数。
例如:
- 输出:
5, [10, 30, 55, 56, 90], 2, 120
- 输入:
65
const getLongest = (M, missDays, N, allDays) => {
};
getLongest(5, [11, 32, 53, 84, 95], 2, 120); // 65
解题:
const getLongest = (M, missDays, N, allDays) => {
// 第一局部:求间断天数区间
// 1. 设置间断天数列表
const area = [];
// 2. 设置打卡区间 [0, allDays + 1]
missDays.unshift(0);
missDays.push(allDays + 1);
// 3. 遍历失落打卡记录,增加间断天数
for (let i = 1; i < missDays.length; i++) {area.push(missDays[i] - missDays[i - 1] - 1);
}
// 4. 漏打卡 missDays:[0, 11, 32, 53, 84, 95, 121] -> 间断天数 area:[10, 20, 20, 30, 10, 25]
// 第二局部:补打卡 > 漏打卡 快速通道
// 5. 如果补打卡大于漏打卡,间接累加求值
if (N > M) {return area.reduce((prev, next) => prev + next, 0) + M;
}
// 第三局部:求补打卡后最长间断天数
// 6. 设置最大值
let result = 0;
// 7. 设置以后和
let sum = 0;
// 8. 设置队列
const queue = [];
// 9. 遍历间断区间,间断 N + 1 个数字求和,求最大
for (let i = 0; i < area.length; i++) {
// 10. 如果 queue 队列曾经爆满,再增加就溢出,那就边增加边移除元素
if (queue.length === N + 1) {
// 10.1 队列增加一个元素
queue.push(area[i]);
// 10.2 sum 累加,而后减去队列移除的元素
sum += area[i];
const shift = queue.shift();
sum -= shift;
} else {
// 10.3 queue 原始队列
queue.push(area[i]);
// 10.4 sum 原始累加
sum += area[i];
}
// 11. 求间断最大
if (sum > result) {result = sum;}
}
// 12. 返回后果(须要加上补打的 2 天)return result + N;
};
// 漏打卡 missDays:[0, 11, 32, 53, 84, 95, 121]
// 间断天数 area:[10, 20, 20, 30, 10, 25]
console.log(getLongest(5, [11, 32, 53, 84, 95], 2, 120)); // 72
console.log(getLongest(5, [11, 32, 53, 84, 95], 3, 120)); // 88
console.log(getLongest(5, [11, 32, 53, 84, 95], 6, 120)); // 120
3.2 面试题
返回目录
- 自我介绍
- CSS 盒子模型
- CSS 款式优先级
- 垂直居中
- 挪动端多分辨率适配
- 挪动端
1px
问题 Cookie
、SessionStorage
、LocaleStorage
- 登录态
Token
- 实现动画成果(
setTimeout
、requestAnimationFrame
) - 手机按钮点击触发哪些事件并具体解释一下(
touchstart
->touchmove
->touchend
->click
) - 手机点击事件的监听
- 为什么
FastClick
库中在touchend
上进行自定义事件,而不是其余事件呢 - 常见 HTTP 状态码,
204
和304
区别?301
和302
区别? - 浏览器同源策略,不同源会怎么?跨域会有什么限度?哪些操作要限度同源?
- 如何实现跨域申请
- 用
CORS
进行跨域,简略申请和简单申请有什么不同? - 说一下什么是防抖和节流,说一下它们的应用场景。
- 讲一下
Git Flow
- 理解过排序算法吗?说一下冒泡排序和疾速排序
四 bilibili
返回目录
bilibili 采纳的是牛客网面试形式,毕竟是异地。
4.1 一面
返回目录
- 自我介绍
- 前端性能优化
- 浏览器渲染过程
flat()
模仿手写实现- GPU 减速
- ……不记得了
4.2 二面
返回目录
- 自我介绍
- HTTP 申请头大抵有哪些字段
- HTTPS
- Vue 双向数据绑定
- React Diff 比对具体
- React 等 MV* 劣势
- 回流和重绘
- 预加载
- 我的项目相干(ECharts、微信小程序)
- ……不记得了
4.3 后续
返回目录
二面后凉了。
剖析:没答复好,集体比拟懵逼。
jsliang 的文档库由 梁峻荣 采纳 常识共享 署名 - 非商业性应用 - 雷同形式共享 4.0 国内 许可协定 进行许可。<br/> 基于 https://github.com/LiangJunrong/document-library 上的作品创作。<br/> 本许可协定受权之外的应用权限能够从 https://creativecommons.org/licenses/by-nc-sa/2.5/cn/ 处取得。