xiyin
浏览器输入一个url 到呈现页面经历了什么
useHooks 用过哪些?useEffect 生命周期。
函数和 class 区别
useCallback 和 useMemo
用useCallback 和 useMemo 一定能做到优化渲染吗
useLayout 和 useLayoutEffect useLayoutEffect 是微任务,在渲染前执行,所以操作dom的程序写在useLayoutEffect不会导致闪烁。但服务端渲染时不会执行。 useLayout是宏任务。
0.1 + 0.2 的精度问题,写一个函数规避
浮点数精度误差 = 0.30000000...001
function preciseAdd(a, b) {
const factor = Math.pow(10, Math.max(decimalPlaces(a), decimalPlaces(b)));
return (Math.round(a *factor) + Math.round(b* factor)) / factor;
}
// 帮助函数:计算一个数的小数位数
function decimalPlaces(num) {
const numStr = num.toString();
if (numStr.includes('.')) {
return numStr.split['.'](1).length;
}
return 0;
}
console.log(preciseAdd(0.1, 0.2)); // 输出 0.3
console.log(preciseAdd(0.123, 0.4567)); // 输出 0.5797
console.log(preciseAdd(1.000001, 2.00002)); // 输出 3.000021
谈一谈 js 的作用域
做过哪些性能优化
前端性能标准
TODO: Mozilla Developer Network (MDN)
- MDN Web Docs 提供了关于首屏渲染时间(FCP)和首次交互延迟(TTI)等优化的建议,目标是用户在 1 秒内看到首屏内容,并在 5 秒内能完全交互。
- 主要标准来源:
- FCP:1 秒以内为较佳。
- TTI:5 秒以内是较佳目标。
- 主要标准来源: