蚂蚁集团前端开发一面面经
- 非递归实现二叉树中序遍历
- 使用栈来实现二叉树的中序遍历。
- 买卖股票的最佳时机
- 描述一个算法,找出给定股票价格列表中买卖一次获得最大利润的时机。
- 宏任务和微任务
- 宏任务(如setTimeout、setInterval)和微任务(如Promise、MutationObserver)的执行顺序,以及它们的区别和包含的例子。
- 箭头函数作为构造函数
- 讨论箭头函数不能作为构造函数的原因。
- 浮点精度问题
- 由于JavaScript使用IEEE 754格式的双精度浮点数,可能导致精度问题。可以使用第三方库如decimal.js来解决。
- 原型链
- 原型链是JavaScript对象继承的机制,通过原型对象连接形成的链式结构。
- for…in与原型链
- for…in循环可以遍历对象自身的可枚举属性,以及原型链上的可枚举属性。
- 浏览器跨域限制
- 浏览器出于安全考虑限制跨域请求。可以通过CORS、JSONP、代理服务器等方式解决。
- JSONP
- 解释JSONP的工作原理及其应用场景。
- 跨域请求的拒绝跨域请求是由浏览器安全策略拒绝的,而不是服务器。
- HTTP OPTIONS请求介绍HTTP OPTIONS请求的用途和使用场景。
- HTTP请求方法主要包括GET、POST、PUT、DELETE等。
- POST与GET的区别POST用于提交数据进行处理,GET用于请求数据。POST对数据大小没有限制,而GET请求的数据会附加在URL上。
- React Fiber介绍React Fiber架构及其优势。
- React任务调度React通过任务调度算法(如Fiber)来合理安排更新的时机和顺序。
- 浏览器剩余空间时间React通过时间切片和请求动画帧(requestAnimationFrame)来估算浏览器的空闲时间。
- requestAnimationFrame解释requestAnimationFrame的作用及其使用场景。
- React合成事件React合成事件是一个跨浏览器的事件处理系统,不直接绑定在元素上,以提高性能和一致性。
- 高阶组件(HOC)HOC是一种React组件复用逻辑的高级技术,可以用来增强组件功能。
- useEffect、useState使用限制useEffect和useState需要在组件的顶层使用,不能放在条件判断语句中,以避免潜在的副作用和状态管理问题。
- 微前端讨论微前端的概念及其应用场景。