• 理解JS中的作用域

    Js作用域在开发中无处不在,可以说没有js作用域就没有了可以正确被访问变量的可能。简单来说js作用域用于控制变量和函数的可访问范围,一旦超出这个范围,变量和函数便不能被访问,作用域分为几类全局作用域,函数作用域,块级作用域,词法作用域。 作用域看着简单,实际上还是有一些可以深挖的点的,比如作用域链,闭包和作用域的联系,如何避免全局变量的污染,使用 IIFE(立即调用函数表达式)来创建一个私有...
  • 深入理解TCP协议

    引言tcp作为http的底层协议,开发中必不可少,但是由于我们更加关注的http导致我们对tcp了解的并不多,这里我们对tcp做个梳理,包括tcp的头部的结构,可靠传输,流量控制,拥塞控制机制,http与tcp是怎么交互的的内容。
  • 深入理解JS中的异步函数

    首先明确一点,==异步函数不等于微任务==。 异步任务是JavaScript中一种在执行过程中不阻塞主线程的函数,一般用于处理耗时操作,比如网络请求,最后返回的是一个promise对象; 而微任务则是JavaScript事件循环的一种任务类型,主要用于处理 Promise 的回调和 MutationObserver 的回调;并且拥有比宏任务更高的优先...
  • websocket详解

    websocket作为一个可以在客户端和服务端进行全双工通信的协议,在即时通信,直播还有游戏运用十分广泛。但是本人在使用中时常搞不清他与http和TCP之间的联系,因此在这篇文章里将会介绍websocket的建立流程,与HTTP和TCP联系,websocket数据帧结构与解析 websocket的建立websocket并不是像我们想象中类似tcp建立连接的,实际上websocket和http...
  • JWT token失效问题与解决方案

    当使用 JWT 作为用户认证机制时,Token 有时效性是一个核心设计。默认 token 一旦过期,用户请求就会被拒绝,通常返回 401 Unauthorized。本文将介绍如何在 Nest.js 项目中处理 token 失效的问题,包括 检测、刷新机制和最佳实践。 问题重现UserService 中用以下方式生成了一个有效期为 60 天的 token,但是过期后访问接口就会报错。 1234...
  • 前端登录鉴权全过程

    在前端面试中总会遇到面试官问你前端登录鉴权是怎么做的,token的作用是怎么,token过期了怎么办之类的一些问题,那么在在这里就以我的智能协作项目(https://github.com/ztygod/smart-task-platform)做一次简单的梳理。 技术栈 前端:vue,axios 后端:nest.js,mysql,TypeORM 注册阶段在一般项目中我们会输入用户名ID...
  • 封装socket坑点

    在我的那个智能协作系统中,一开始维护了一个简单的useSocket Hook(如下),但是出现问题。这个封装方式导致了socket对同一个事件的多次监听,以至于后端emit事件的时候,前端会对这个事件进行多次响应,无法达到预期。上面代码问题如下: 1. 多个组件共享一个 socket 实例,但都注册 connect/disconnect 监听 如果你多个页面/组件都调用了...
  • Markdown 语法示例

    Markdown 语法示例Markdown 是一种轻量级标记语言,适用于写作和排版,广泛用于博客、文档和 GitHub README 文件等。本文将介绍 Markdown 的基本语法。 1. 标题使用 # 号定义标题,# 代表一级标题,## 代表二级标题,以此类推。 123# 一级标题## 二级标题### 三级标题 2. 加粗 & 斜体 加粗 使用 **加粗内容** 或 __加粗内...
  • 回溯

    回溯介绍回溯定义是: 简单来说,回溯是一种逐步尝试寻找解的过程,如果当前尝试失败,就返回上一步(即“回溯”),尝试其他可能的路径。 可以理解为一个进阶版的递归与树 DFS 的结合。 核心观点 选择 DFS 遍历对象 确定约束条件:DFS 变量结果不可能全部有效,我们需要找到有效的部分,也就是说需要进行“充分剪枝”。 确定 DFS 遍历结束的边界:设定目标,确保回溯能够正确终止。 题目括号...
  • tianyi

    helloI’m tianyi
1