随笔分类 -  JS/TS

摘要:import { render } from 'preact' const frag = document.createDocumentFragment() render(<CustomComponent />, frag) const container = document.querySelec 阅读全文
posted @ 2025-09-28 00:34 guangzan 阅读(25) 评论(0) 推荐(0)
摘要:问题 使用 Delete unused imports 操作时,同时删掉了 import React from 'react';。 为什么不能删掉呢?因为代码 push 到远程仓库后会走 CI 流程, CI 流程里有代码检查节点进行 ESLint 检查 CI 节点的 ESLint 规则开发者无法修改 阅读全文
posted @ 2025-09-12 15:36 guangzan 阅读(178) 评论(0) 推荐(2)
摘要:解决办法 tsconfig.json { "compilerOptions": { "typeRoots": ["./node_modules/@types/", "./custom/path/to/declarations/"] }, } 示例 例如,在根目录下新建 types 目录 types/ 阅读全文
posted @ 2022-02-22 21:12 guangzan 阅读(4075) 评论(2) 推荐(0)
摘要:不要使用 for in,参考这里 for (const [key, val] of Object.entries(obj)) { console.log(key, val) } 阅读全文
posted @ 2021-07-07 17:15 guangzan 阅读(2588) 评论(0) 推荐(0)
摘要:立即调用的函数表达式(Immediately Invoked Function Expression)简称 IIFE,是一个JavaScript函数,一旦JavaScript运行时对其求值,它就会立即被调用。下面是一段大致相等的代码: // IIFE (function (message) { co 阅读全文
posted @ 2021-06-17 20:38 guangzan 阅读(79) 评论(0) 推荐(0)
摘要:filename/ dirname require resolve 替代方案:import.meta.url process. env 替代方案:import.meta.env 阅读全文
posted @ 2021-05-23 15:43 guangzan 阅读(230) 评论(0) 推荐(0)
摘要:function fileSelected(e: Event) { const target = e.target as HTMLInputElement const file: File = (target.files as FileList)[0] // ... } 阅读全文
posted @ 2021-05-20 18:03 guangzan 阅读(4744) 评论(3) 推荐(0)
摘要:语法 _.template([string=''], [options={}]) 创建一个已编译的模板函数,该函数可以在 interpolate 分隔符中插入数据属性,在 escape 分隔符中插入 HTML escape interpolated 数据属性,并在 evaluate 分隔符中执行 J 阅读全文
posted @ 2021-04-23 16:37 guangzan 阅读(763) 评论(0) 推荐(0)
摘要:前置 rough-notation 用于在网页上创建注释并设置注释动画的小型 JavaScript 库。它还可以应用在一些常见前端框架中,比如 Vue、React、 Svelte、Angular 甚至 Web Component。我把它应用在我创建的博客园皮肤中,比如你可以看见头部导航条中的博客昵称 阅读全文
posted @ 2020-07-25 17:47 guangzan 阅读(1138) 评论(1) 推荐(10)
摘要:泛型 基本 function add<t>(arg1: T, arg2: T): T { return arg1 + arg2 } // add<number>(1,'0') X 泛型接口 function add<T>(arg1:T,arg2:T):T { return arg1 + arg2 } 阅读全文
posted @ 2020-07-09 18:30 guangzan 阅读(228) 评论(0) 推荐(1)
摘要:这里记录一些常用的 ts config。 strictNullChecks "strictNullChecks": true 严格区分 undefined 和 null let weight: number | undefined weight = undefined // ?相当于 string 阅读全文
posted @ 2020-07-07 15:54 guangzan 阅读(427) 评论(0) 推荐(0)
摘要:前置 原型是 JavaScript 巧妙的设计,它非常容易理解。都 2020 年了,看完这篇希望你以后不需要再重复学习 JavaScript 原型了。如有不当之处,恳请指点一二! 单词 下面是相关单词及其翻译,牢牢记住它们就成功一半了。 constructor 构造器 proto & prototy 阅读全文
posted @ 2020-05-14 17:38 guangzan 阅读(1282) 评论(14) 推荐(8)
摘要:" " 前置 正如你所见,我现在用的这个博客皮肤,在没优化之前帧率会降到个位数. 现在与之相比,是不是好很多呀? 下面将从滚动 scroll 优化这一方面展开,主要说一下思路. 只在极少情况下会降到 30fps,一般稳定在 55 60fps. 头部导航条 头部导航条会监听滚动条上下滚动的方向随之展开 阅读全文
posted @ 2020-03-18 10:19 guangzan 阅读(1206) 评论(30) 推荐(16)
摘要:V8 实现了准确式 GC,GC 算法采用了分代式垃圾回收机制。因此,V8 将内存(堆)分为新生代和老生代两部分。 新生代算法 新生代中的对象一般存活时间较短,使用 Scavenge GC 算法。 在新生代空间中,内存空间分为两部分,分别为 From 空间和 To 空间。在这两个空间中,必定有一个空间 阅读全文
posted @ 2019-07-31 09:51 guangzan 阅读(556) 评论(0) 推荐(1)
摘要:Proxy Proxy 是 ES6 中新增的功能,可以用来自定义对象中的操作 let p = new Proxy(target, handler); // `target` 代表需要添加代理的对象 // `handler` 用来自定义对象中的操作 // 可以很方便的使用 Proxy 来实现一个数据绑 阅读全文
posted @ 2019-07-31 09:50 guangzan 阅读(185) 评论(0) 推荐(1)
摘要:Promise 是 ES6 新增的语法,解决了回调地狱的问题。 可以把 Promise 看成一个状态机。初始是 pending 状态,可以通过函数 resolve 和 reject ,将状态转变为 resolved 或者 rejected 状态,状态一旦改变就不能再次变化。 then 函数会返回一个 阅读全文
posted @ 2019-07-31 09:49 guangzan 阅读(229) 评论(0) 推荐(1)
摘要:call, apply, bind 区别 首先说下前两者的区别。 call 和 apply 都是为了解决改变 this 的指向。作用都是相同的,只是传参的方式不同。 除了第一个参数外,call 可以接收一个参数列表,apply 只接受一个参数数组。 模拟实现 call 和 apply 可以从以下几点 阅读全文
posted @ 2019-07-31 09:48 guangzan 阅读(188) 评论(0) 推荐(1)
摘要:Map 作用是生成一个新数组,遍历原数组,将每个元素拿出来做一些变换然后 append 到新的数组中。 Map 有三个参数,分别是当前索引元素,索引,原数组 FlatMap 和 map 的作用几乎是相同的,但是对于多维数组来说,会将原数组降维。可以将 FlatMap 看成是 map + flatte 阅读全文
posted @ 2019-07-31 09:48 guangzan 阅读(686) 评论(0) 推荐(0)
摘要:Generator 是 ES6 中新增的语法,和 Promise 一样,都可以用来异步编程 从以上代码可以发现,加上 的函数执行后拥有了 next 函数,也就是说函数执行后返回了一个对象。每次调用 next 函数可以继续执行被暂停的代码。以下是 Generator 函数的简单实现 参考资料: "前端 阅读全文
posted @ 2019-07-31 09:48 guangzan 阅读(595) 评论(0) 推荐(0)
摘要:一个函数如果加上 async ,那么该函数就会返回一个 Promise 上面代码会先打印 finish 然后再打印 object 。因为 await 会等待 sleep 函数 resolve ,所以即使后面是同步代码,也不会先去执行同步代码再来执行异步代码。 async 和 await 相比直接使用 阅读全文
posted @ 2019-07-31 09:47 guangzan 阅读(454) 评论(0) 推荐(1)