LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

【Web开发】一个很冷门的 JS 知识点:逗号操作符

admin
2026年5月26日 18:25 本文热度 34

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

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

// 或者
if(truefalsetrue){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
}

会把读源码的人给吓到。

参考资料:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Comma_operator

https://juejin.cn/post/7600316828485058575


该文章在 2026/5/26 18:25:55 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-9  粤公网安备44030602007207号