吴文俊
吴文俊
关注前端编码,学习 Java, Android-iOS App.

JavaScript 的 for-of 循环实际上很快(V8)

本文测试了 6 种 JavaScript 循环的性能,发现 for-of 循环在 V8 引擎优化下表现优异。小数组性能与经典 for 循环相当,大数组需要充分预热。缓存长度的经典 for 循环最稳定,for-in 最慢。结论:性能敏感场景用经典 for,普通代码推荐用 for-of 以提升可读性。

border-shape:非矩形网页的未来

`border-shape` 是 CSS Level 4 的新属性,可定义元素边框的自定义形状。与 `clip-path` 仅遮罩不同,`border-shape` 真正重新定义了“盒子”本身,背景、阴影、焦点轮廓都会跟随新几何形状。支持 `shape()` 函数、基本形状和 SVG 路径字符串,适用于对话气泡、工具提示、星形等非矩形设计。

React 已经改变,Hooks 也应该如此

React 18+ 时代的 Hooks 不再是生命周期方法的替代品,而是一种架构设计系统。核心转变是从对 `useEffect` 依赖,转向更清晰的渲染驱动数据流:派生状态留在渲染阶段计算,副作用仅用于真正的外部交互,通过 `useSyncExternalStore`、`useDeferredValue` 等并发工具优化性能,并以自定义 Hooks 封装领域逻辑。随着服务端组件、`use()` 和 `useActionState` 等新 API 的成熟,现代 React 应用正在走向数据优先的架构模式。

重新思考 JavaScript 中的异步循环

探讨 JavaScript 中异步循环的常见陷阱和最佳实践。在循环中使用 await 时需要根据具体需求选择合适的模式:for...of + await 适用于顺序执行且保持顺序的场景,而 Promise.all() + map() 则更适合并行执行以提升性能。此外还讨论了节流并行等高级模式,以及为什么要避免在 forEach() 中使用 await 的原因,帮助开发者根据并发级别需求选择最适合的异步处理策略。

别再把一切都转换成数组

JavaScript 中的迭代器辅助函数(iterator helpers),这是一种原生的惰性替代方案,可用于处理大型数据集、流和 UI 驱动的逻辑。相比传统的数组方法链式调用,迭代器辅助函数不会创建中间数组,在只需要部分数据时能够提前停止处理,从而减少内存分配和计算开销,特别适合虚拟化列表、无限滚动、分页 API 和异步数据流等场景。

qrcode.vue

A Vue.js component to generate qrcode. Supports both Vue 2 and Vue 3. 一款同时支援 Vue 2 和 Vue 3 的二维码组件。