前端无感刷新Token

  在现代 Web 应用中,身份验证(Authentication)权限控制(Authorization)是保障安全的核心机制。通常,前端登录成功后会拿到一个 access_token(访问令牌)用于后续请求。但为了安全,这个 access_token 的有效期往往较短,比如 15 分钟或 1 小时。如果不做处理,Token 过期后用户就需要重新登录,这会导致用户体验变差。为了解决这个问题,我们引入了“无感刷新 Token”机制,即在不打断用户操作的前提下,悄悄完成 Token 的续期,让经常使用的用户察觉不到 Token 的生命周期。

阅读更多

HttpOnly Cookie 全解析

  在前端开发中,我们经常与 Cookie 打交道。它是浏览器最原始的数据持久化方案,被广泛用于记录登录状态、用户偏好等信息。然而,Cookie 也是 XSS 攻击的高发地带,尤其是当我们把敏感信息(如 Token)直接暴露在 document.cookie 中时,风险极高。为了解决这一问题,浏览器支持了一个重要的 Cookie 属性:HttpOnly。它是保障 Web 安全的重要方法,很多前后端分离项目在实现登录、权限控制时,都会用到。

阅读更多

for...in与for...of

  在前端开发中,我们经常需要对数组、对象或其他可遍历结构进行循环。JavaScript 提供了多种方式,其中最容易混淆的就是 for...infor...of,真的很难记。它们看起来很像,但本质上完全不同,作用对象和遍历内容也大不一样。本篇文章将带你系统地了解它们之间的区别与使用场景。

阅读更多

WebWorker与计时器优化

   JavaScript 是单线程语言,所有任务(包括 UI 渲染、事件处理、计时器等)都运行在一个主线程中。当遇到计算密集型任务时,页面可能会卡顿、响应变慢,一些动画、计时器会出现延迟。这时,Web Worker 作为 Web 提供的一种“多线程”能力,就成了性能优化的重要手段。本文将带你了解 Web Worker,并通过计时器优化这一实际场景说明它的价值。

阅读更多

Object和Map

  在早期的 JavaScript 中,Object 是唯一可用的键值对结构,常被当作“字典”使用。随着 ES6 的推出,Map 以更现代化和高性能的形式登场,解决了 Object 在键类型、性能、原型污染等方面的局限。理解两者的异同,不仅能写出更清晰的代码,也能在性能和安全性上获得提升。

阅读更多

通过手写hash路由理解单页应用

  在现代前端开发中,前端路由几乎是单页应用(SPA)不可或缺的一部分。Vue Router、React Router 等流行工具对路由进行了很好的实现,本文将通过一个简单的 Hash 路由实现一个简单的前端路由系统,帮助更好的理解路由实现逻辑。

阅读更多

NaN为什么不相等

  在 JavaScript 中有个很反直觉的事情,两个 NaN 不管是 == 还是 === ,返回结果都是 flase ,这也是一道很常出现的面试题,这里进行一个说明。

阅读更多

前端鉴权机制

  在现代 Web 开发中,身份验证会话管理是不可或缺的组成部分。HTTP是无状态的协议,为了在用户与服务器之间维持状态,前端和后端需要协同使用一些机制来标识用户身份并保障数据安全。本文将围绕 Cookie、Session、Token、JWT 四种常见方式进行介绍与对比,并结合实际说明 Cookie 在前端的基本操作方法。

阅读更多

Js中的构造函数

  在写 JavaScript 的时候,经常可以看到 new Date() 这样的语法,这里 new 的就是构造函数,我们通过 function 可以定义,而箭头函数却不行。

阅读更多