逗号在javascript里面的if语句

时间:2014-07-18 14:27:03

标签: javascript if-statement


我已经搜索过了,但我没有找到类似的东西。也许我使用了错误的搜索键 当我发现这个if声明

时,我正在编辑一个javascript库
    var a = location.hash.replace(/^#/, "");

    if (container = $("#content"), a) {
       ..content
    } else {
        ...other code
    }

第一部分container = $("#content")正在为容器分配$("#content")的值,但我不明白为什么在If中有逗号。它是否像AND运算符? 像if (container = $("#content") && a)这样的东西? 什么是评估?

2 个答案:

答案 0 :(得分:4)

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

因此,在这种情况下,会对container = $("#content")进行评估,然后评估a。整件事的价值是a的价值。

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

答案 1 :(得分:2)

是逗号运算符。

基本上它做了两件事。首先是分配,然后,只评估a并在if条件下对其进行验证。