蚂蚁金服前端工程师社招面经
蚂蚁金服-体验技术部
一面电话面全程1小时24分钟
Q1 描述一下你最近做的可视化的项目
Q2 刚刚说的java调用js离线生成数据报告?java调用js的promise异步返回结果怎么实现的?
Q3 说说svg和canvas各自的优缺点?
Q4 你刚刚说的canvas渲染较大画布的时候性能会较低?为什么?
Q6 假设我现在有5000个圆,完全绘制出来,点击某一个圆,该圆高亮,另外4999个圆设为半透明,分别说说用svg和canvas怎么实现?
Q7 刚刚说的canvas的点击事件,怎么样实现?假如不是圆,这些图形是正方形、长方形、规则图形、不规则图形呢。
Q8 那假如我的图形可能有变形、放大、偏移、旋转的需求呢?你的这个isPointInSide怎么处理?
Q9 那个这个canvas的点击事件,点击的时候怎么样快速的从这5000个圆中找到你点击的那个圆(不完全遍历5000个节点)?
Q10 那你用过@antv/g6,里面有一个tree,说说你大学时候接触到的tree的数据结构是怎么实现的?
Q11 还记得二叉树吗?描述二叉树的几种遍历方式?
Q12 说说你记得的所有的排序,他们的原理是什么?
Q13 说一下你觉得你做过的最复杂的项目?中间遇到的困难,以及你是怎么解决的?
Q14 那给我介绍一下react吧(面试官是做可视化开发的,根本不懂react)
Q15 假如我一个组件有一个状态count为1,然后我在componentDidMount()里面执行执行了两次this.setState({count: ++this.state.count}),然后又执行了两次setTimeout(() => { this.setState({count: ++this.state.count}) }, 0),最后count为多少?为什么?
Q16 说一下你觉得你做过的最值得你说的吧
#蚂蚁集团##前端工程师##社招##面经#