阿里-前端-一面(已offer)
9月20日 16:00 实习
- 会不会遇到性能问题,怎么解决的
- 云产品错误监控方案设计
- 项目遇到的难点,怎么解决的 React源码深入:
- 怎么理解VDOM,有什么好处,底层原理是什么
- fiber树原理,中间有哪些阶段
- 怎么拿到state,状态更新的原理是什么
- useEffect会在什么时候执行
- 如果useEffect依赖数组是对象,对象属性值改变会引起Effect内的重新更新吗?函数呢
- useMemo依赖影响,useMemo有什么作用 前端工程化
- Webpack和Vite在原理上有什么区别
- Vite除了热更新还有什么好处
- 线上打包产物与开发环境不一致怎么解决
- 线上白屏事故怎么定位问题,你有什么解决思路 输入url到页面加载发生了什么(中间不断打断,插入问题)
- url,浏览器会对url校验吗
- 请求发送到dns服务器以前会做什么
- TCP连接如何建立的
- 服务端处理报文会做什么
- 如何确定一个任务是不是长任务
- js是否会阻塞浏览器加载
- 浏览器有哪些性能检测方案,提供了哪些API
- 前端异常如何监控,有哪些异常,Promise的catch能不能被window.onerror捕获到。 算法:
- 手写render函数(vdom转dom)
const render = (element, container) => { // 创建node节点,对文本节点和非文本节点做不同处理 const node = element.type === 'TEXT_ELEMENT' ? document.createTextNode('') : document.createElement(element) // 递归处理children element.props.children.map(child => render(child, node)) // 将props里的属性赋给dom节点 Object.keys(element.props) .filter(key => key !== 'children') .forEach(name => node[name] == element.props.name ) container.appendChild(node) }
- 2. 判断镜像二叉树
const isSymmetricTree = (root) => { return root === null ? true : judge(root.left, root.right) // 递归处理左右子树 } const judge = (left, right): boolean => { if (left === null && right === null) { return true } else if (left !== null && right !== null) { return left.val === right.val ? judge(left.left, right.right) && judge(left.right, right.left) // 判断镜像核心逻辑 : false } else { return false } }#面经##校招##阿里巴巴##前端工程师#