关于前端:jsliang-求职系列-47-2020-面试题汇总

40次阅读

共计 2474 个字符,预计需要花费 7 分钟才能阅读完成。

一 目录

不折腾的前端,和咸鱼有什么区别

目录
一 目录
二 前言
三 360
 3.1 口试题
 3.2 面试题
四 bilibili
 4.1 一面
 4.2 二面
 4.3 后续

二 前言

返回目录

2020 面试其实不止 2 家,然而一是我偷懒,二是我感觉如果小伙伴将 2020 求职系列认认真真看过了,一面题都不是问题,问题是二面问我的项目的。

所以心愿小伙伴们看完这篇文章后,能扫视下本人的我的项目教训,能不能做更好的晋升。

三 360

返回目录

360 是搭高铁过来现场面的,顺带看看内推我的大佬。

3.1 口试题

返回目录

  1. 行内元素和块级元素
  2. CSS 选择器
  3. 创立、增加、移除、复制 DOM 节点
  4. 数组 pop()push()shift()unshift() 的作用
  5. 判断变量类型的办法、差别和局限
  6. 变量晋升、函数晋升、Event Loopvar 变量净化做打印题
  7. 数组去重多种形式实现
  8. 千分位宰割数字:1234567890.11 -> 1,234,567,890.11
  9. 手写防抖和节流
  10. 实现柯里化 add(1)(2)(3)
  11. 算法题:

有 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 面试题

返回目录

  1. 自我介绍
  2. CSS 盒子模型
  3. CSS 款式优先级
  4. 垂直居中
  5. 挪动端多分辨率适配
  6. 挪动端 1px 问题
  7. CookieSessionStorageLocaleStorage
  8. 登录态
  9. Token
  10. 实现动画成果(setTimeoutrequestAnimationFrame
  11. 手机按钮点击触发哪些事件并具体解释一下(touchstart -> touchmove -> touchend -> click
  12. 手机点击事件的监听
  13. 为什么 FastClick 库中在 touchend 上进行自定义事件,而不是其余事件呢
  14. 常见 HTTP 状态码,204304 区别?301302 区别?
  15. 浏览器同源策略,不同源会怎么?跨域会有什么限度?哪些操作要限度同源?
  16. 如何实现跨域申请
  17. CORS 进行跨域,简略申请和简单申请有什么不同?
  18. 说一下什么是防抖和节流,说一下它们的应用场景。
  19. 讲一下 Git Flow
  20. 理解过排序算法吗?说一下冒泡排序和疾速排序

四 bilibili

返回目录

bilibili 采纳的是牛客网面试形式,毕竟是异地。

4.1 一面

返回目录

  1. 自我介绍
  2. 前端性能优化
  3. 浏览器渲染过程
  4. flat() 模仿手写实现
  5. GPU 减速
  6. ……不记得了

4.2 二面

返回目录

  1. 自我介绍
  2. HTTP 申请头大抵有哪些字段
  3. HTTPS
  4. Vue 双向数据绑定
  5. React Diff 比对具体
  6. React 等 MV* 劣势
  7. 回流和重绘
  8. 预加载
  9. 我的项目相干(ECharts、微信小程序)
  10. ……不记得了

4.3 后续

返回目录

二面后凉了。

剖析:没答复好,集体比拟懵逼。


jsliang 的文档库由 梁峻荣 采纳 常识共享 署名 - 非商业性应用 - 雷同形式共享 4.0 国内 许可协定 进行许可。<br/> 基于 https://github.com/LiangJunrong/document-library 上的作品创作。<br/> 本许可协定受权之外的应用权限能够从 https://creativecommons.org/licenses/by-nc-sa/2.5/cn/ 处取得。

正文完
 0