哈啰出行前端线上面试

  1. 使用js实现一个持续的动画效果
  2. 单链表和双向链表的区别?
  3. Vue computed的原理是什么?为什么避免在computed里面进行修改数据的操作?
  4. 怎样为元素添加一个4px的内阴影?
  5. 什么情况会内存泄漏?
  6. eventloop
  7. 箭头函数和普通函数的区别?
  8. 作用域链
  9. 协商缓存/强缓存简单说一下
  10. 如果说要展示一个十万的数据在移动端的网页上怎么做?
  11. 编写一个contextmenu的插件
  12. js 继承, 手写了三种构造原型寄生组合
  13. nodejs中定时器process.nextTick和setImmediate的区别,优先级
  14. 页面加载过程中可能触发哪些事件?它们的顺序是?
  15. babel把ES6转成ES5或者ES3之类的原理是什么,有没有去研究。
  16. 一行代码实现数组去重?
  17. 你觉得typescript和javascript有什么区别?
  18. 能否描述一下渐进增加和优雅降级之间的不同?你更倾向于那种方式?
  19. 如何判断object是数组类型?
  20. 每个生命周期是有什么用处?一般的应用场景
  21. 项目中使用插件的时候有没有对比其他插件,引用别人的代码有没有看别人怎么实现的?
  22. 刚刚提到 TCP 的三次握手,其中 https(s是什么?在 tcp 层的起了什么作用)?
  23. 前端行业目前比较关注的点了解吗?
  24. typeof和instanceof的区别
  25. Iterator是什么,有什么作用?

编程题

  • 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
  • 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

示例 1:

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

示例 2:

输入:nums = [0]
输出:[[],[0]]