石墨文档
- 请说出js中几种声明变量的方式?
- 既然谈到变量提升请你说一下啥是变量提升?
- 说一下js在点击一个dom之后,js引擎如何处理?
- 那既然说到了事件冒泡,说一下如何阻止冒泡
- 那如何在事件捕获阶段执行事件呢?
- 说一下css垂直居中的方式
- 如何判断是不是一个数组?
- 知道事件循环吗?
- 子元素的margin-top:10%的10%是多少?
- css3选择器说一下,知道多少说多少
- 那你知道他们的权重吗?
- 实现动画的方式
- 那你说说requestAnimation吗?
- 那你说说为啥是17ms
- 有没有处理过跨域?
- 有了解过websocket吗?
- 那你说说如果浏览器不支持websocket如何替代?
- 有用过git吧,那你说说git rebase和git merge的区别?
- react 节流和防抖
- 设计模式
- 那你说说发布订阅模式和观察者模式区别和联系
- 有了解过ts装饰器吗?
- ts中的泛型说一下
- 有了解MVC风格吗
- 那在前端有使用过吗?
- 有遇到过模块依赖循环的问题吗
- ['10', '10', '10', '10', '10'].map(parseInt) 的输出值是什么?
- 你们现在的技术栈是什么?为什么要使用ts?
- ts中的 any、unknown 有什么区别?
- setTimeout的执行过程(事件循环,同步、异步)
- 对Promise的理解,与async、await的区别,async、await是怎么实现的
- 解释 requestAnimationFrame/requestIdleCallback,分别有什么用?
- react性能优化
- 说说对flex的理解
- 回流、重绘是什么?如何减少回流和重绘?
- 判断一个对象是数组的方法
- 怎么寻找react页面卡顿的原因
- 编程题:实现一个对象的 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 }
- 说说对web worker的理解
- service worker和强缓存相比,有哪些优势?
- 说说对堆栈溢出的理解
- position中的sticky是什么,还有哪些其他的?
- ts中,any和unknown分别是什么意思?泛型怎么使用?
- bind有什么用?连续多个bind,最后this指向是什么?
- webpack的plugin怎么实现?
- 编程题
// 现已知一个字符串是由正整数和加减乘除四个运算符(+ - * /)组成。 例如存在字符串 const str = '11+2-3*4+5/2*4+10/5',现在需要将高优先级运算,用小括号包裹起来,例如结果为 '11+2-(3*4)+(5/2*4)+(10/5)'。注意可能会出现连续的乘除运算,需要包裹到一起。 请用 javascript 实现这一过程
- 手写体:使用TypeScript 实现一个 get 函数来获取它的属性值,
const data = { name: 'tom', age: 18, address: xxx }
- ts中的 any 、 unknown 的区别
- 有用过ts中的 keyof 吗?
- for in/for of的区别
- Promise值穿透
- 编程题】基于二面中的表达式包裹编程题,实现计算表达式的值