逗号运算符的妙用

简介: 逗号运算符的妙用

前言


逗号在JavaScript中有很大的用处,一方面它是基本的分隔符,例如,在函数中传递多个参数时,使用逗号分隔;另已方面它可以作为一个运算符,从左到右依次执行。例如下面的表达式语句:


x = 8 * 2, x * 4
复制代码


这是一个使用了逗号运算符的语句,首先执行左边的部分,x = 8 * 2,即x = 16,然后执行右边的语句,x * 4 = 16 * 4 = 64,并将其返回。


几个逗号运算符的使用场景:


1. 在for循环中批量执行表达式


如果一个for循环中有多个变量需要执行表达式,可以通过逗号运算符一次性执行。


for (var i = 0; j = 10; i < 10, j < 20; i++,j++) {
    console.log(i, j);
}
复制代码


一般在for循环的末尾,只允许执行单个表达式,在这里我们使用逗号运算符将i++和j++视为同一表达式,因此可以一次执行。


2. 用于交换变量,无须额外变量


通常我们需要交换两个变量的方法是,借助一个临时变量实现,或者使用解构赋值来实现:


var a = 'a';
var b = 'b';
var c;
// 借助临时变量
c = a;
a = b;
b = c;
// 解构赋值
[a, b] = [b, a]
复制代码


现在我们又多了第三种方法,那就是使用逗号运算符:


var a = 'a';
var b = 'b';
// 方案1
a = [b, b = a][0];
// 方案2
a = [b][b = a, 0];
复制代码


3. 用于简化代码


对于特定的函数,我们可以使用逗号运算符进行简写。


if(x) {
    foo();
    return bar();
} else {
    return 1;
}
// 使用逗号运算符简写后
x ? (foo(), bar()) : 1;


相关文章
|
6月前
|
PyTorch API 算法框架/工具
DeepSeek 部署方式与技术实践
DeepSeek的部署灵活性使其在多个领域大放异彩,但需根据场景权衡性能、成本与安全性。随着工具生态的完善与行业方案的沉淀,2025年将成为AI大模型落地关键年。开发者应持续关注MoE、COT等技术创新,结合自身需求选择最优部署策略。
432 1
|
11月前
|
人工智能 搜索推荐 数据挖掘
如何让产品在Go-to-Market战略中脱颖而出?
本文深入探讨了Go-to-Market战略中产品运营的关键作用,涵盖市场需求洞察、产品规划、生命周期管理、上线推广及用户反馈处理等环节,强调通过精准运营策略助力产品成功推向市场,实现商业价值。
|
4月前
|
Ubuntu 编译器 C语言
在Ubuntu22.04平台上交叉编译针对Rv1126架构的GCC13.2.0编译器的步骤。
遵循上述步骤,您应该能够在Ubuntu 22.04平台上成功交叉编译适用于RISC-V架构RV1126的GCC 13.2.0编译器,允许您为目标硬件构建应用程序和操作系统组件。
250 10
|
11月前
|
SpringCloudAlibaba Dubbo Java
【SpringCloud Alibaba系列】Dubbo基础入门篇
Dubbo是一款高性能、轻量级的开源Java RPC框架,提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册和发现、运行期流量调度、可视化服务治理和运维等功能。
【SpringCloud Alibaba系列】Dubbo基础入门篇
|
Dragonfly 安全 数据安全/隐私保护
什么是WPA3?与WPA2有啥区别?
【4月更文挑战第14天】
11275 2
什么是WPA3?与WPA2有啥区别?
|
设计模式 前端开发 数据库
微服务架构谈(4) plus:DDD 分层架构如何推动架构演进
微服务架构谈(4) plus:DDD 分层架构如何推动架构演进
1328 0
微服务架构谈(4) plus:DDD 分层架构如何推动架构演进
|
开发框架 Java .NET
webshell不能执行命令常见问题总结
webshell不能执行命令常见问题总结
423 0
|
存储 Prometheus 监控
Exporter + Prometheus + Grafana进行监控
Exporter + Prometheus + Grafana进行监控
493 0
Exporter + Prometheus + Grafana进行监控
|
运维 数据可视化 中间件
一文搞懂SaaS、PaaS、IaaS的概念和异同
一文搞懂SaaS、PaaS、IaaS的概念和异同
65851 6
一文搞懂SaaS、PaaS、IaaS的概念和异同