【前端校招面经】阿里天猫超市前端校招面经

这是去年 12 月面试的, 这次把面经补上

  • 自我介绍
  • CSS垂直水平居中有哪些方式, 用代码实现
  • 背诵flex有哪些属性
  • setInterval的间隔时间是准确的吗? 如何做到间隔时间绝对准确
  • 0.1 + 0.2 为什么不等于 0.3, 怎样让它等于, 你知道有哪些 js 库可以实现 js 科学运算, 你看过 js 库实现科学运算的源码吗?
  • 浏览器缓存
  • 什么场合适合用强缓存, 什么场合适合用协商缓存
  • httpsTLS 协议四次握手
  • 现已知 https 对前端性能影响很大, 如何提升其性能以减少 tls 层耗时
  • https 如何防止信息被劫持
  • Vue 和 React 区别
  • MobxRedux原理, 二者在应用层面上的区别
  • 介绍你实习项目
  • 你在实习期间做的项目有哪些价值, 收到了哪些反馈
  • 代码题
// 1. 三数之和(LeetCode 15)

// 2. 单链表反转

// 3. 手写一个 EventEmitter class
// 下面是 ChatGPT 写的:
class EventEmitter {
  constructor() {
    this.events = {};
  }

  /**
   * 注册事件
   * @param {String} eventName 事件名
   * @param {Function} cb 回调函数
   */
  on(eventName, cb) {
    // 如果没有注册过,则创建一个空数组
    if (!this.events[eventName]) {
      this.events[eventName] = [];
    }
    // 将回调函数添加到对应的事件数组中
    this.events[eventName].push(cb);
  }

  /**
   * 触发事件
   * @param {String} eventName 事件名
   * @param  {...any} args 传入参数
   */
  emit(eventName, ...args) {
    // 获取对应的事件数组
    const callbacks = this.events[eventName];
    // 如果存在
    if (callbacks && callbacks.length) {
      // 依次执行数组中的函数
      callbacks.forEach(cb => {
        cb(args);
      });
    }
  }
}
全部评论
是只有一次面试吗?
2 回复 分享
发布于 2023-02-15 13:06 湖南
后续捏
2 回复 分享
发布于 2023-02-14 16:42 贵州

相关推荐

我只是一个小白菜:我还用不惯m4,也是山猪吃不了细糠了
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
评论
15
44
分享

创作者周榜

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