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,我会好好考虑的。谢谢。我不知道,汉克斯!永远不要停止学习