javascript中if语句的内部逗号

javascript中if语句的内部逗号,javascript,if-statement,Javascript,If Statement,我搜索了这么多,但没有找到类似的东西。可能我使用了错误的搜索键。 我在编辑javascript库时发现了这个ifstation var a = location.hash.replace(/^#/, ""); if (container = $("#content"), a) { ..content } else { ...other code } 第一部分container=$(“#content”)将$(“#content”)


我搜索了这么多,但没有找到类似的东西。可能我使用了错误的搜索键。
我在编辑javascript库时发现了这个
if
station

    var a = location.hash.replace(/^#/, "");

    if (container = $("#content"), a) {
       ..content
    } else {
        ...other code
    }
第一部分
container=$(“#content”)
$(“#content”)
的值分配给container,但我不明白为什么If中有逗号。它像一个
操作符吗?
类似于
if(container=$(“#content”)&&a)

它在评估什么?

JavaScript中的逗号运算符与其他类似C语言中的概念非常相似。这是一种将多个表达式串成一个(语法)表达式的方法。整件事的值是列表中最后一个表达式的值

因此,在这种情况下,
container=$(“#content”)
被计算,然后
a
被计算。整个事物的价值就是
a
的价值

一个好问题是为什么代码是这样写的。有时逗号运算符很有用,但通常它只是一种节省键入的方法,使代码更简洁。

它是逗号运算符


基本上它做两件事。首先是赋值,然后是
只计算
a
,并在
if
条件下对其进行验证。

Javascript(到目前为止)是我的主要编程语言。我以前见过这个操作符,但只有在它真正有用的时候。在本例中,似乎只是想通过在
if
语句中抛出赋值来“保存一行”。在我看来,这不是很可读。虽然我认为如果这是“每个字节都计数”的库代码,但即使如此,库也可以/应该缩小。所以他们为什么这样写代码。。。对我来说绝对是个谜。谢谢@ChrisCirefice,我会好好考虑的。谢谢。我不知道,汉克斯!永远不要停止学习