Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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/in循环_Javascript - Fatal编程技术网

具有意外输出的JavaScript for/in循环

具有意外输出的JavaScript for/in循环,javascript,Javascript,我不确定为什么这会为文档对象的属性名输出未定义的。我认为这与变量表达式myArray[I++]有关。我可以让它成为一个简单的原语变量,我会得到所有的属性名,但我希望所有的属性名都保存到一个数组中。提前感谢您的帮助 var myArray = []; var i = 0; for (myArray[i++] in document) { document.write(myArray[i] + "</br>"); } var myArray=[]; var i=0; for(文档中的m

我不确定为什么这会为
文档
对象的属性名输出
未定义的
。我认为这与变量表达式
myArray[I++]
有关。我可以让它成为一个简单的原语变量,我会得到所有的属性名,但我希望所有的属性名都保存到一个数组中。提前感谢您的帮助

var myArray = [];
var i = 0;
for (myArray[i++] in document) {
document.write(myArray[i] + "</br>");
}
var myArray=[];
var i=0;
for(文档中的myArray[i++]{
document.write(myArray[i]+“
”; }
“我希望将所有属性名保存到数组中。”

你可以做:

var names = Object.getOwnPropertyNames(document);
之所以使用
Object.getOwnPropertyNames()
是因为它包含不可枚举的属性,而
for in
将跳过这些属性

但是有些属性是继承的,所以如果您想要的话,您需要对原型链中的所有对象执行相同的操作

var obj = document;
var names = [];

do {
    names.push.apply(names, Object.getOwnPropertyNames(obj));
} while(obj = Object.getPrototypeOf(obj));

导致Firefox:

[“jQuery17104169501299363202”、“位置”、“addEventListener”、“removeEventListener”、“dispatchEvent”、“getElementsByName”、“getItems”、“open”、“close”、“write”、“writeln”、“execCommand”、“queryCommandEnabled”、“QueryCommandTerm”、“queryCommandState”、“queryCommandSupported”、“queryCommandValue”、“clear”、“getSelection”、“captureEvents”,“releaseEvents”、“routeEvent”、“domain”、“cookie”、“body”、“head”、“images”、“embeds”、“plugins”、“links”、“forms”、“scripts”、“designMode”、“fgColor”、“linkColor”、“vlinkColor”、“alinkColor”、“bgColor”、“anchors”、“Applet”、“onreadystatechange”、“OnMouseCenter”、“onmouseleave”、“getElementsByTagName”、“GetElementsByTagnames”、“GetElementsByTagnames”、”GetElementsByCassName、getElementById、createElement、CreateElements、createDocumentFragment、createTextNode、createComment、createProcessingInstruction、importNode、adoptNode、createEvent、createRange、createNodeIterator、createTreeWalker、createCDATASection、createAttribute、createAttributeNS、hasFocus、releaseCapture、mozSetImageElement、mozCancelFullScreen、mozExitPointerLock、enableStyleSheetsForSet、elementFromPoint、querySelector、querySelectorAll、getAnonymousNodes、GetAnonymouseElementByAttribute、addBinding、removeBinding、getBindingParent、loadBindingDocument、createExpression、createNSResolver、evaluate、evaluate、实现、URL、documentURI、compatMode、characterSet、contentType、DoctType、documentElement、inputEncoding、Referer、lastModified、readyState、title、dir、defaultView、activeElement、currentScript、mozFullScreenEnabled、mozFullScreenElement、mozFullScreen、mozPointerLockElement、hidden、mozHidden“,“visibilityState”,“mozVisibilityState”,“样式表”,“selectedStyleSheetSet”,“lastStyleSheetSet”,“preferredStyleSheetSet”,“styleSheetSets”,“hasChildNodes”,“insertBefore”,“appendChild”,“replaceChild”,“removeChild”,“normalize”,“cloneNode”,“isEqualNode”,“ComparedDocumentPosition”,“contains”,“lookupPrefix”,“lookupNamespaceURI”,“isDefaultNamespace”、“IssuSupported”、“hasAttributes”、“setUserData”、“getUserData”、“nodeType”、“nodeName”、“baseURI”、“ownerDocument”、“parentNode”、“parentElement”、“childNodes”、“firstChild”、“lastChild”、“previousSibling”、“nextSibling”、“nodeValue”、“textContent”、“attributes”、“namespaceURI”、“prefix”、“localName”、”lookupGetter”、“lookupSetter”、“defineGetter”、“defineGetter”、“QueryInterface”、“mozSyntheticDocument”、“caretPositionFromPoint”、“元素节点”、“属性节点”、“文本节点”、“CDATA\U节节点”、“实体\U引用节点”、“实体\U节点”、“处理\U指令节点”、”注释节点、“文档节点”、“文档类型节点”、“文档片段节点”、“注释节点”、“文档位置断开”、“文档位置前”、“文档位置后”、“文档位置包含”、“文档位置包含者”、“文档位置实现特定”、“位置”、“onabort”、“onblur”、“oncanplay”oncanplaythrough、onchange、onclick、oncontextmenu、ondblclick、ondrag、ondragend、ondragenter、ondragleave、ondragover、ondragstart、ondrop、ondurationchange、ondurationchange、onemptied、onended、onerror、onfocus、oninput、oninvalid、onkeydown、onkeypress、onkeyup、onload、onloadeddata、onloadedmetadata、”onloadstart、onmousedown、onmousemove、onmouseout、onmouseover、onmouseup、onmozfullscreenchange、onmozfullscreenerror、onmozpointerlockchange、onmozpointerlockerror、onpause、onplay、onplay、onprogress、onratechange、onreset、onscroll、OnSeek、OnSeek、OnSelection、onshow、OnInstalled、onsubmit、onsuspend、ontimeupdate、onvolumechange、onwaiting、onwheel、oncopy、oncut、onpaste、onbeforescriptexecute、onafterscriptexecute、getElementsByTagName、GetElementsByTagnames、GetElementsByName、getElementById、createElement、createDocumentFragment、createTextNode、createComment、createProcessingInstruction、importNode、adoptNode、createEvent、createRange、createNodeIterator、createTreeWalker、createCDATASection、createAttribute、CreateAttributes、hasFocus、releaseCapture、mozSetImageElement、mozCancelFullScreen、mozExitPointerLock、enableStyleSheetsForSet、elementFromPoint、querySelector“,”querySelectorAll“,”getAnonymousNodes“,”getAnonymousElementByAttribute“,”addBinding“,”removeBinding“,”getBindingParent“,”loadBindingDocument“,”createExpression“,”createNSResolver“,”evaluate“,”implementation“,”URL“,”documentURI“,”compatMode“,”characterSet“,”contentType“,”doctype“,“lastModified”、“readyState”、“title”、“dir”、“defaultView”、“activeElement”、“OnBort”、“onblur”、“oncanplay”、“oncanplaythrough”、“onchange”、“onclick”、“oncontextmenu”、“ondblclick”、“ondrag”、“ondragend”、“ondragenter”、“ondraglea”
for(int i = 0; i < myArray.length; i++){
  document.write(myArray[i] + "</br>");
}
var myArray = [];
var i = 0;
for (myArray[i] in document) {
    console.log(myArray[i++] + "</br>");
}
var myArray = [];
var i = -1;
for (myArray[++i] in document) {
    document.write(myArray[i] + "</br>");
}