Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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 for()循环变量_Javascript_For Loop - Fatal编程技术网

Javascript for()循环变量

Javascript for()循环变量,javascript,for-loop,Javascript,For Loop,我正在使用以下属性创建此元素: var x = document.createElement('x'); x.setAttribute('ha','1'); x.setAttribute('he','2'); x.setAttribute('hi','3'); 然后我使用这两种形式循环,每次都得到不同的输出: >>>for(var i in x.attributes) console.log(x.attributes[i]); ha="1" he="2" hi="3" 3 i

我正在使用以下属性创建此元素:

var x = document.createElement('x');
x.setAttribute('ha','1');
x.setAttribute('he','2');
x.setAttribute('hi','3');
然后我使用这两种形式循环,每次都得到不同的输出:

>>>for(var i in x.attributes) console.log(x.attributes[i]);
ha="1"
he="2"
hi="3"
3
item()
getNamedItem()
setNamedItem()
removeNamedItem()
getNamedItemNS()
setNamedItemNS()
removeNamedItemNS()
另一个:

>>>for(var i=0;i<x.attributes.length;i++) console.log(x.attributes[i]);
ha="1"
he="2"
hi="3"

>>for(var i=0;i中的
for…方法迭代对象的所有属性,包括“本机”属性。要将输出限制为您定义的那些属性,请执行以下操作:

for (var i in obj) {
    if (obj.hasOwnProperty(i)) {
        console.log(i);
    }
}
参考资料:


    • 这是因为您也从原型中获取了所有信息。使用
      hasOwnProperty
      仅迭代您设置的属性:

      for(var i in x.attributes){ 
          if (x.hasOwnProperty(i)) {
              console.log(x.attributes[i]);
          }
      }
      

      看看什么时候不使用三值运算器是多么好的一个例子。或者,我应该说,如何以错误的方式使用它。@alro Oh,代码是否中断?我没有测试它。我只是使用三值来明确他将在自己的逻辑中包括测试。不,但这根本不是它的预期用途。如果你只是想做一些可笑的事情like
      :void(0)
      ,最好只使用一个
      if
      。只是为了解释它背后的原因,而不是抱怨:三元运算符返回一个值,当您必须在表达式中使用值X或Y或作为参数时,可以使用它。如果您实际不使用返回值,则if是执行此操作的更合理、更温和的方法。Eith呃,还有,+1用于编辑:)@alro我知道,你应该看到我在其他类似C语言中滥用这些结构是多么可怕P谢谢你的提示。