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

推荐订阅源

V
Visual Studio Blog
Recent Announcements
Recent Announcements
有赞技术团队
有赞技术团队
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
腾讯CDC
A
About on SuperTechFans
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
D
DataBreaches.Net
D
Docker
宝玉的分享
宝玉的分享
量子位
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
Last Week in AI
Last Week in AI
H
Help Net Security
Hugging Face - Blog
Hugging Face - Blog
M
MIT News - Artificial intelligence

串串狗小刊 ⭐️

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-04-30 · via 串串狗小刊 ⭐️

你知道 JS 里有个逗号操作符吗?

let a = 1;
let b = 2;
let c = (a++, b++);
console.log(a, b, c); // 执行结果是 2 3 2

// 或者
if(true, false, true){alert('hi')}

在第一个这个代码里,c 赋值时,会把 a 和 b 都自增加赋值一下,然后 c 取最后一个表达式的值,所以 c 等于 b++ 执行前的值 2。

第二个的话,则是取最后一个 true 。然后弹窗 hi 。

神奇吧!

其实,绝大部分人都没刻意用过逗号操作符,实际上连知道都根本不知道。这个知识点很冷门,存在感很低,实际上也造就了很多 bug ,坑过不少人 哈哈。

注意,我们在搞 JS 数组里也会有逗号,比如 [3, 6, 2, 5] ,这里面的逗号叫 【数组元素分隔符】,而在 函数参数里也有逗号,比如 setName(id, 'Tom') ,这个叫 参数分隔符 ,而我们今天了解的是 逗号操作符,是在表达式里(通常是在括号里)的逗号 ,注意,是表达式,和前面将的这些都不一样。

今天给大家讲讲关于这个 逗号操作符 的一些内容。

其实很简单。就是:

a = (expr1, expr2, expr3, ..., exprN);
console.log(a);  // 输出 exprN 的值

就是在一个括号里,有很多倍逗号分隔的参数(表达式),然后依次执行,最后再返回最后一个值。

这个东西,在实际工作里,很少用到,毕竟有隐藏知识,不学的话一眼看不懂,因此用的少,但是在面试的时候,就好玩了哈哈!

我在网上找到这样一个代码,看起来足以让很多不知道这个知识点的人不明所以:

if(a = 1, b = 2, c < 0){
    console.log('ok');
}

其实这串代码,等同于:

a = 1;
b = 2;
if(c < 0){
    console.log('ok');
}

它经常用在哪里呢?

其实,我们很多人在学习或者读他人源码时,遇到的 for 循环里可能无意识的用过这个【逗号操作符】。这个语法,其实就是为 for 循环设计的:

for (let i = 0, j = 80; i < j; i++, j--) {
  console.log(i, j);
}

怎么样,恍然大悟了吧。

当然,还有个有意思(丧心病狂)的用法:

const func = () => {
    let a = 7;
    return a, 10;  // 没想到吧,最后 return 的是 10
}

会把读源码的人给吓到。