Skip to main content

Command Palette

Search for a command to run...

[JS] 前端常用 utils 方法手写

Published
•1 min read•View as Markdown
[JS] 前端常用 utils 方法手写

写项目时,通常都会建一个utils文件夹用于存放工具类,这篇博客就来总结一下一些常用的utils的手写方法

深拷贝 deepClone

const deepClone = (obj: any) => {
    if(typeof obj === "object") {
        // 创建一个新对象,避免直接引用原来的对象
        let newObj: any = Array.isArray(value) ? [] : {}
        // for in 循环既可以遍历对象,也可以遍历数组
        for(const key in newObj) {
            newObj[key] = deepClone(newObj[key])
        }
        return newObj
    }
    return obj
}

防抖 debounce

const debounce = (func: function, time: number) => {
    // 闭包,保存一个变量,用于每次触发防抖函数时清理之前的定时器
    const timer: any = null
    return function (...args) {
        clearTimeout(timer)
        timer = setTimeout(() => func(args), number)
    }
}

节流 throttle

const throttle = (func: function, time: number) => {
    // 保存上一次的调用时间
    let last: Date = null
    return function(...args) {
        const now = new Date()
        // 如果没有调用过,或者调用的时间间隔大于设置的最小时间间隔,才可以调用 
        if(last === null || now - last > time) {
            func(args)
            last = now
        } 
    }
}

More from this blog

[Vite] 处理静态资源路径

静态资源路径的种类 从路径的格式上来说,vite 的静态资源路径有两种:相对路径 和 绝对路径 从路径的类型上来说,vite 的静态资源路径有两种:基于 http URL 的 和 基于文件系统的 相对路径 在 vite 文档的表述中,相对路径常用于在 “嵌入式” 的页面中使用: 这里的 “嵌入式” 指的是例如浏览器插件这种,将一个页面嵌入到一个网页中的形式 绝对路径 绝对路径指的是 “以根路径为起点” 而表示的路径 绝对路径在 “基于 http URL” 和 “基于文件系统” 的情况下,最终表...

Oct 2, 20251 min read

[Node] Mac m 芯片使用 node 14

最近在 m 芯片的 mac 电脑上使用 node 14 版本,遇到了芯片架构不兼容的错误,所以记录一下解决问题的过程 遇到的问题 原因是 node 14 版本只支持 x86_64 架构的芯片,所以使用 arm 架构的 m 芯片就会报错 解决方案 前置知识 在 m 芯片的 mac 上,node 16 及以上的版本全面支持了 arm 芯片架构;如果要安装 16 以下的版本,需要通过 Rosetta 2 转译执行 步骤 按照 nvm 官方的步骤进行:https://github.com/nvm-sh/...

Jul 11, 20251 min read
[Node] Mac m 芯片使用 node 14

[其他] WSL Interop

最近在 wsl 下使用 code <dir> 命令拉起 windows 下的 vscode 客户端时,遇到了错误,搜了一下发现是 wsl 和 windows 的互操作出现了问题 这篇文章就来记录一下遇到的问题和相关的知识点 WSLInterop.conf 文件 WSLInterop.conf 文件是 WSL(Windows Subsystem for Linux)中的一个关键配置文件,它定义了 Linux 系统如何识别和处理 Windows 可执行文件 文件位置和基本作用 这个文件通常位于 /u...

Jul 11, 20252 min read
[其他] WSL Interop

lordmoon's blog

25 posts