javascript中if语句中的逗号[重复]
Posted
技术标签:
【中文标题】javascript中if语句中的逗号[重复]【英文标题】:comma inside if statment in javascript [duplicate] 【发布时间】:2014-09-09 17:34:31 【问题描述】:
我在 SO 中搜索过,但没有找到类似的东西。也许我使用了错误的搜索键。
当我发现这个if
statment 时,我正在编辑一个javascript 库
var a = location.hash.replace(/^#/, "");
if (container = $("#content"), a)
..content
else
...other code
第一部分container = $("#content")
将$("#content")
的值分配给容器,但我不明白为什么If 中有逗号。它像AND
运算符吗?
if (container = $("#content") && a)
之类的东西?
它在评估什么?
【问题讨论】:
Javascript 是(到目前为止)我的主要编程语言。我以前见过那个运算符,但只有当它实际上有用时。在这种情况下,似乎只是想通过在if
语句中添加赋值来“保存一行”。在我看来,这不是很可读。虽然我想如果这是“每个字节都很重要”的库代码,但即使这样,库也可以/应该被缩小。那么为什么他们以这种方式编写代码……对我来说绝对是个谜。
感谢@ChrisCirefice,我会考虑到这一点
【参考方案1】:
JavaScript 中的逗号运算符与其他类 C 语言中的概念非常相似。这是一种将多个表达式串在一起形成一个(句法)表达式的方法。整个事物的值就是列表中最后一个表达式的值。
因此在这种情况下,container = $("#content")
被评估,然后a
被评估。整件事的价值就是a
的价值。
一个很好的问题是为什么代码是这样写的。有时逗号操作符很有用,但通常它只是一种节省输入和使代码更简洁的方法。
【讨论】:
谢谢。我不知道【参考方案2】:是逗号。
基本上它做两件事。首先是赋值,然后,
只评估a
并在if
条件下对其进行验证。
【讨论】:
谢谢!永远不要停止学习以上是关于javascript中if语句中的逗号[重复]的主要内容,如果未能解决你的问题,请参考以下文章