Javascript中变量赋值后的逗号

Jus*_*dry 2 javascript arrays variables for-loop variable-assignment

function ReplaceContentInContainer(matchClass,content)
    {
    var elems = document.getElementsByTagName('*'), i;
    for (i in elems)
        {
        if((" "+elems[i].className+" ").indexOf(" "+matchClass+" ") > -1)
            {
            elems[i].innerHTML = content;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚逗号在变量赋值中的作用('*'), i; 以及for (i in e)循环中的含义.

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

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

Den*_*ret 5

这只是简单地分隔声明.

var elems = document.getElementsByTagName('*'), i;
Run Code Online (Sandbox Code Playgroud)

是相同的

var elems = document.getElementsByTagName('*');
var i;
Run Code Online (Sandbox Code Playgroud)

一个更简洁,另一个可能被认为更具可读性.

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

var elems = document.getElementsByTagName('*');
for (var i in elems)
Run Code Online (Sandbox Code Playgroud)

在我看来,这将是最好的,因为目的i本来是显而易见的.

由于变量的范围是函数(或全局)而不是块,因此它将完全相同.