我正在处理前一个开发人员编写的一些jQuery代码。我试图了解一个人何时/为什么使用逗号分隔语句而不是分号。
在下面的示例中,使用逗号分隔语句没有任何好处是安全的吗?如果是的话...为什么,如果没有......是否存在使用逗号有意义的情况?
仅供参考:这个问题是关于链接陈述以及是否有益处。不是关于逗号在语句中的作用。
var $some_field_1, $some_child_field, $some_field_2, $some_child_field_2;
function a() {
$some_field_1 = jQuery(".field_class"), $some_child_field = $some_field_1.find("input"), RunSomeFunction(), $some_field_2 = jQuery(".field_class_2"), $some_child_field_2 = $some_field_2.find("input");
}
VS
var $some_field_1, $some_child_field, $some_field_2, $some_child_field_2;
function a() {
$some_field_1 = jQuery(".field_class");
$some_child_field = $some_field_1.find("input");
RunSomeFunction();
$some_field_2 = jQuery(".field_class_2");
$some_child_field_2 = $some_field_2.find("input");
}
我希望这是有道理的。谢谢大家!
答案 0 :(得分:6)
通常,逗号用于分隔变量声明,但您显示的版本是使用它们来分隔表达式。虽然这很细微,但仍然很重要。
请注意,所有表达式都将变量名称分配给全局范围(在您的示例中,技术上是词法环境,这些变量可能在更局部的范围内定义而不是全局范围)。
一个更好的例子就是
var one = 1, two = 2, sum = function(a,b){ return a+b; };
请注意,如果您尝试在变量声明中调用函数,则会导致 Uncaught SyntaxError: Unexpected token (
。
由于所有声明本身都以var
为前缀,因此是局部变量(在变量环境中)。
将示例与
对比one = 1, two = 2, sum = function(a,b){ return a+b; }, sum(one,two);
本质上是你问题中的例子,差异主要是变量的范围,而且每个只是一个表达式,允许函数调用。
的更多信息