在Java脚本中,变量赋值后的逗号

function ReplaceContentInContainer(matchClass,content)
    {
    var elems = document.getElementsByTagName('*'), i;
    for (i in elems)
        {
        if((" "+elems[i].className+" ").indexOf(" "+matchClass+" ") > -1)
            {
            elems[i].innerHTML = content;
            }
        }
    }
我想弄清楚逗号在变量赋值中的作用 以及for (i in e)循环中的含义。

我最好的猜测是e被分配给文档节点中的所有元素以及i。那么,这是否意味着i是数组e中元素数的计数或引用(它是一个数组吗?)?

编辑: 好吧。它只是实例化变量(i),然后ifor循环中计算对象elem中的所有元素。


解决方案

简单地分隔声明。

var elems = document.getElementsByTagName('*'), i;

相同
var elems = document.getElementsByTagName('*');
var i;

一个更简洁,另一个可能更具可读性。

在您的情况下,您可以使用

var elems = document.getElementsByTagName('*');
for (var i in elems)

在我看来,这是i最明显的目的。

由于变量的作用域是函数(或全局)而不是块,因此它们应该是完全相同的。

相关文章