Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中变量赋值后的逗号_Javascript_Arrays_Variables_For Loop_Variable Assignment - Fatal编程技术网

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;