在前端开发中,我们经常需要对数组、对象或其他可遍历结构进行循环。JavaScript 提供了多种方式,其中最容易混淆的就是 for...in
和 for...of
,真的很难记。它们看起来很像,但本质上完全不同,作用对象和遍历内容也大不一样。本篇文章将带你系统地了解它们之间的区别与使用场景。
在前端开发中,我们经常需要对数组、对象或其他可遍历结构进行循环。JavaScript 提供了多种方式,其中最容易混淆的就是 for...in
和 for...of
,真的很难记。它们看起来很像,但本质上完全不同,作用对象和遍历内容也大不一样。本篇文章将带你系统地了解它们之间的区别与使用场景。
JavaScript 是单线程语言,所有任务(包括 UI 渲染、事件处理、计时器等)都运行在一个主线程中。当遇到计算密集型任务时,页面可能会卡顿、响应变慢,一些动画、计时器会出现延迟。这时,Web Worker 作为 Web 提供的一种“多线程”能力,就成了性能优化的重要手段。本文将带你了解 Web Worker,并通过计时器优化这一实际场景说明它的价值。
在早期的 JavaScript 中,Object
是唯一可用的键值对结构,常被当作“字典”使用。随着 ES6 的推出,Map
以更现代化和高性能的形式登场,解决了 Object
在键类型、性能、原型污染等方面的局限。理解两者的异同,不仅能写出更清晰的代码,也能在性能和安全性上获得提升。
在现代前端开发中,前端路由几乎是单页应用(SPA)不可或缺的一部分。Vue Router、React Router 等流行工具对路由进行了很好的实现,本文将通过一个简单的 Hash 路由实现一个简单的前端路由系统,帮助更好的理解路由实现逻辑。
在现代 Web 开发中,身份验证和会话管理是不可或缺的组成部分。HTTP是无状态的协议,为了在用户与服务器之间维持状态,前端和后端需要协同使用一些机制来标识用户身份并保障数据安全。本文将围绕 Cookie、Session、Token、JWT 四种常见方式进行介绍与对比,并结合实际说明 Cookie 在前端的基本操作方法。
在 JavaScript 中,undefined
和 null
它们都表示“没有值”,在某些对比中看起来还“相等”,但它们其实有着完全不同的语义和使用场景。
最近开始了前端基础知识的复习,在这个文章里进行一个简单的记录,如果内容不特别多会全部更新在这里。由于封装成函数可能不利于理解和说明,在这里的大部分题目的解答都不会封装成函数。
今天在看【新思路管理后台】时遇到了一个很奇怪的问题,函数执行正确的时候系统日志记录是没有问题的,但是函数执行错误的时候,系统日志中的操作者和操作行为不是默认的值,而是上一个正确操作者的信息。这是因为我对日志记录和函数返回其实是封装了一个操作执行类 OperationExecutor
,在多次调用时,某些实例属性(如 opAction
)未能恢复初始值,导致后续调用继承了上一次的状态。本文简单记录一下解决的方案。