惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
F
Fortinet All Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
V
Visual Studio Blog
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
L
LangChain Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
P
Proofpoint News Feed
博客园_首页
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Check Point Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog

串串狗小刊 ⭐️

Web 出海之域名商、托管商等一定要分开 - 串串狗小刊 - 聊AI、互联网、前端技术 ~ 程序员下班以后做什么副业合适? - 串串狗小刊 - 聊AI、互联网、前端技术 ~ 终极拷问:用户的登录信息放哪里? - 串串狗小刊 - 聊AI、互联网、前端技术 ~ 5个 link 标签,突破前端性能瓶颈! - 串串狗小刊 Web 出海让你结束上班时代! - 串串狗小刊 - 聊AI、互联网、前端技术 ~ 注意!程序员不要使用 设计模式 了! - 串串狗小刊 Web 出海之品牌站如何应对被别人侵权 - 串串狗小刊 - 聊AI、互联网、前端技术 ~ Web 出海之一些广告流量主方案和 SaaS 站没必要搞社区 - 串串狗小刊 年轻人怎么抓住 AI 发展的风口? - 串串狗小刊 为什么 GO 语言地位很尴尬? - 串串狗小刊 Web 出海必备的外链列表 - 串串狗小刊 - 聊AI、互联网、前端技术 ~ 我的 Web 3D 世界梦 - 串串狗小刊 OPC Web 出海之图视频的 AI 供应商渠道和简单外链 - 串串狗小刊 简单聊聊我的 Nodejs 世界观 - 串串狗小刊 Web 出海快速判断关键词法和推荐 3 个 SKILL - 串串狗小刊 Web 出海之演示建站盈利和朋友 Reyn 的教训 阅读源代码前要运行的 5 条 Git 命令 - 串串狗小刊 介绍几组我一直在使用的 Codex 插件 我观看哥飞年终会议复盘的 Web 出海笔记(下) - 串串狗小刊 观看哥飞年终会议复盘的 8 个 Web 出海笔记 - 串串狗小刊 Codex 敞开用的技巧和谷歌趋势的参考词 - 串串狗小刊 - 聊AI、互联网、前端技术 ~ Web 出海之外链提交频率和如何不花 Token 处理代码 - 串串狗小刊 程序员现在的最佳副业 ~ Web 出海 - 串串狗小刊 如何设计良好的 API - 串串狗小刊 - 聊AI、互联网、前端技术 ~ 你跟 AI 对话后会发生什么? - 串串狗小刊 出海 Web 之 GSC 里的曝光量和点击量和外链的关系 - 串串狗小刊 出海 Web 不要 恋战 新词游戏站 - 串串狗小刊 无港卡开通 Stripe 收款和 Nofollow 转 Dofollow 技巧 - 串串狗小刊 DeepSeek 发布氮气加速器 DSpark!可惜好东西又开源了 - 串串狗小刊 简单聊聊出海 Web 的游戏站 - 串串狗小刊
分享几个短小精悍实用的 js 代码 - 串串狗小刊
独元殇 · 2026-05-17 · via 串串狗小刊 ⭐️

今天我把自己收藏的几个分享一下。都是一些过去可能得专门 pnpm npm 导入新库才能实现的功能,实际上几个字符就能搞定。在 AI 时代,收集到自己的收藏库里,可能会让 AI 生成的代码引入库更少,避开 AI 生成代码的冗余、兼容性隐患.... 反正不管怎么说,看看新鲜也行。

比如第一个,我前年做的业务里,需要随机 ID (唯一识别码 UUID)。

本来下意识是使用 random 或者各种歪门邪道自己搞一个。后来在一个外网的大佬里,学了一招。没想到 JS 里竟然有这种 API :

const getUUID = () => crypto.randomUUID();
console.log(getUUID())
// 输出例子: df91af4f-0115-44ad-88b2-1279db811e62

这个可不是随机数,这个是内置的crypto加密模块搞的,安全性很高!不会出现重复(有生之年)。

(注意,crypto 不是 es 接口,做通用库兼容性还是要注意的,比如微信小程序不支持。有些环境还得引入 uuid 库)

然后是一个 异步 同步 的问题。

在 js 里,异步 是写着不爽,调试起来更不爽的东西。

但是 GEMINI 曾经给我一个 巧妙的 写法。

一定程度上,可以基本上让 代码 不再考虑 异步 。就是一切代码都是 同步 的,一条线顺着写下去的。

const wait = (ms = 0) => new Promise(res => setTimeout(res, ms));

// 使用例子(大家应该能领悟到,它的强大吧?!)
await wait(1000)
console.log('1秒后')

这一下子就让 js 的编写没有那么绕脑子了哈哈!全不用再考虑异步那套东西!

接下来是一个也是很常用的场景,就是枚举等需要反向查询值的时候,有个函数也很好用:

const flipObject = (obj = {}) => Object.fromEntries(Object.entries(obj).map(([a, b]) => [b, a]));

// 使用案例
const cityCode = { 北京: '010', 上海: '021' }
flipObject(cityCode)['021'] // 这样就能反着查值了,哈哈

这个其实还挺实用,虽然速度回慢一点,但只有上了几十万键才会有区别,没那么夸张,简单干净为王。

然后是数字前置补零。这个在时间、订单、文件名、工号生成、目录 等等等业务里面,都会高频用到。

const fillZero = (n = 0, fixLen = 2) => n.toString().padStart(fixLen, '0');
// 案例
const hour = 8;
const minute = 5;
console.log(fillZero(hour) + ':' + fillZero(minute)); // 08:05

这个大家收藏一下。

还有一个,就是【一键复制代码】,不再多说。

const copyToClipboard = async (content = '') => {
  try {
    await navigator.clipboard.writeText(content);
    return true;
  } catch {
    return false;
  }
};

// 使用案例
copyToClipboard('这是要复制的内容')
  .then(success => {
    if (success) console.log('复制成功');
    else console.log('复制失败,浏览器未授权或环境不支持');
  });

还有一个经典的,超级好用的,最稳定的 打乱算法(Fisher‑Yates 洗牌算法):

const randomSortList = (sourceList) => {
  const tempArr = [...sourceList];
  for (let i = tempArr.length - 1; i > 0; i--) {
    const randomIndex = Math.floor(Math.random() * (i + 1));
    [tempArr[i], tempArr[randomIndex]] = [tempArr[randomIndex], tempArr[i]];
  }
  return tempArr;
};

// 使用案例

const data = [1, 2, 3, 4, 5];
console.log(randomSortList(data));  // 打乱了

// 以前你可能这样写 打乱算法
// 这个超级难用,容易被客户投诉
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());

这个算法,是最均匀和公平的,不会出现局部扎堆问题。比 AI 直接原生写的打乱算法质量高多了,我以前做抽奖程序时用过,最后还是这个最好用。