我已经搜索过了,但我没有找到类似的东西。也许我使用了错误的搜索键
当我发现这个if
声明
var a = location.hash.replace(/^#/, "");
if (container = $("#content"), a) {
..content
} else {
...other code
}
第一部分container = $("#content")
正在为容器分配$("#content")
的值,但我不明白为什么在If中有逗号。它是否像AND
运算符?
像if (container = $("#content") && a)
这样的东西?
什么是评估?
答案 0 :(得分:4)
JavaScript中的逗号运算符与其他类C语言中的概念非常相似。这是将多个表达式串联成一个(语法)表达式的方法。整个事物的值是列表中最后一个表达式的值。
因此,在这种情况下,会对container = $("#content")
进行评估,然后评估a
。整件事的价值是a
的价值。
一个很好的问题是为什么代码是以这种方式编写的。有时候逗号运算符很有用,但通常它只是一种节省一些输入并使代码更简洁的方法。
答案 1 :(得分:2)
是逗号运算符。
基本上它做了两件事。首先是分配,然后,
只评估a
并在if
条件下对其进行验证。