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谢谢你的提示。