跳到主要内容

石墨文档

  1. 请说出js中几种声明变量的方式?
  2. 既然谈到变量提升请你说一下啥是变量提升?
  3. 说一下js在点击一个dom之后,js引擎如何处理?
  4. 那既然说到了事件冒泡,说一下如何阻止冒泡
  5. 那如何在事件捕获阶段执行事件呢?
  6. 说一下css垂直居中的方式
  7. 如何判断是不是一个数组?
  8. 知道事件循环吗?
  9. 子元素的margin-top:10%的10%是多少?
  10. css3选择器说一下,知道多少说多少
  11. 那你知道他们的权重吗?
  12. 实现动画的方式
  13. 那你说说requestAnimation吗?
  14. 那你说说为啥是17ms
  15. 有没有处理过跨域?
  16. 有了解过websocket吗?
  17. 那你说说如果浏览器不支持websocket如何替代?
  18. 有用过git吧,那你说说git rebase和git merge的区别?
  19. react 节流和防抖
  20. 设计模式
  21. 那你说说发布订阅模式和观察者模式区别和联系
  22. 有了解过ts装饰器吗?
  23. ts中的泛型说一下
  24. 有了解MVC风格吗
  25. 那在前端有使用过吗?
  26. 有遇到过模块依赖循环的问题吗
  27. ['10', '10', '10', '10', '10'].map(parseInt) 的输出值是什么?
  28. 你们现在的技术栈是什么?为什么要使用ts?
  29. ts中的 any、unknown 有什么区别?
  30. setTimeout的执行过程(事件循环,同步、异步)
  31. 对Promise的理解,与async、await的区别,async、await是怎么实现的
  32. 解释 requestAnimationFrame/requestIdleCallback,分别有什么用?
  33. react性能优化
  34. 说说对flex的理解
  35. 回流、重绘是什么?如何减少回流和重绘?
  36. 判断一个对象是数组的方法
  37. 怎么寻找react页面卡顿的原因
  38. 编程题:实现一个对象的 flatten 方法,如下:
// 输出 // { //   'a.b': 1, //   'a.c': 2, //   'a.d.e': 5, //   'b[0]': 1, //   'b[1]': 3, //   'b[2].a': 2, //   'b[2].b': 3 //    c: 3 // }
const obj = { a: { b: 1, c: 2, d: { e: 5 } }, b: [1, 3, {a: 2, b: 3}], c: 3 }

  1. 说说对web worker的理解
  2. service worker和强缓存相比,有哪些优势?
  3. 说说对堆栈溢出的理解
  4. position中的sticky是什么,还有哪些其他的?
  5. ts中,any和unknown分别是什么意思?泛型怎么使用?
  6. bind有什么用?连续多个bind,最后this指向是什么?
  7. webpack的plugin怎么实现?
  8. 编程题
// 现已知一个字符串是由正整数和加减乘除四个运算符(+ - * /)组成。  例如存在字符串 const str = '11+2-3*4+5/2*4+10/5',现在需要将高优先级运算,用小括号包裹起来,例如结果为 '11+2-(3*4)+(5/2*4)+(10/5)'。注意可能会出现连续的乘除运算,需要包裹到一起。  请用 javascript 实现这一过程
  1. 手写体:使用TypeScript 实现一个 get 函数来获取它的属性值, const data = { name: 'tom', age: 18, address: xxx }
  2. ts中的 any 、 unknown 的区别
  3. 有用过ts中的 keyof 吗?
  4. for in/for of的区别
  5. Promise值穿透
  6. 编程题】基于二面中的表达式包裹编程题,实现计算表达式的值

需求