Javascript中变量赋值后的逗号
我试图弄清楚逗号在变量赋值Javascript中变量赋值后的逗号,javascript,arrays,variables,for-loop,variable-assignment,Javascript,Arrays,Variables,For Loop,Variable Assignment,我试图弄清楚逗号在变量赋值('*')中的作用,我 这在for(即在e中)循环中意味着什么 我的最佳猜测是e被分配给文档节点中的所有元素以及i。那么这是否意味着i是数组e中元素数量的计数或引用(它是数组吗?) 编辑: 可以它只是实例化变量(i),然后在for循环中对对象elem中的所有元素进行计数 只需将声明分开即可 function ReplaceContentInContainer(matchClass,content) { var elems = document.getEl
('*')中的作用,我代码>
这在for(即在e中)
循环中意味着什么
我的最佳猜测是e
被分配给文档节点中的所有元素以及i
。那么这是否意味着i
是数组e
中元素数量的计数或引用(它是数组吗?)
编辑:
可以它只是实例化变量(i
),然后在for
循环中对对象elem
中的所有元素进行计数 只需将声明分开即可
function ReplaceContentInContainer(matchClass,content)
{
var elems = document.getElementsByTagName('*'), i;
for (i in elems)
{
if((" "+elems[i].className+" ").indexOf(" "+matchClass+" ") > -1)
{
elems[i].innerHTML = content;
}
}
}
与
var elems = document.getElementsByTagName('*'), i;
一个更简洁,另一个可能更具可读性
在你的情况下,你可以使用
var elems = document.getElementsByTagName('*');
var i;
在我看来,这是最好的,因为i
的目的是显而易见的
由于变量的作用域是函数(或全局)而不是块,因此它应该完全相同。之所以使用逗号,是因为您在局部作用域中定义了变量i
,它只是var
语句的一部分。如果没有逗号,i
将是全局的
您的声明与以下内容相同:
var elems = document.getElementsByTagName('*');
for (var i in elems)
如果您使用该工具对代码质量进行静态分析,例如JSLint,它将迫使您编写:
var elems = document.getElementsByTagName('*');
var i;
有几个原因:
您定义了两个变量(因此没有全局变量)
你没有额外的var
(你写的更少…:-)
您的代码比单行版本更具可读性
您在同一位置定义所有变量,这比以下内容更易于阅读:
用于(变量i,以元素表示){
//做点什么
}
perl中有类似的概念,例如:
var elems = document.getElementsByTagName('*'),
i;
在JavaScript中,这是相同的,但不需要将变量放入列表中。i
是var
语句的一部分。。所以它只是创建一个新变量。。。
您的代码与相同
my ($var1, $var2);
var elements=document.getElementsByTagName('*');
var i;