Javascript 一个基本的for循环,太乱了?接下来我该去哪里?

Javascript 一个基本的for循环,太乱了?接下来我该去哪里?,javascript,optimization,Javascript,Optimization,所以我编写了这个小for循环,它创建了0-255范围内十进制数的二进制版本。我希望它在每次迭代后都能换行 作为一个初学者,我可以使用哪些小技巧来更清晰、更精确地编写for循环 for(i=0;i<=255;i++){ console.log(i+":"+i.toString(2)) //usually commented out var x = document.createElement("br") //creating a <br> html element

所以我编写了这个小for循环,它创建了0-255范围内十进制数的二进制版本。我希望它在每次迭代后都能换行

作为一个初学者,我可以使用哪些小技巧来更清晰、更精确地编写for循环

for(i=0;i<=255;i++){

   console.log(i+":"+i.toString(2)) //usually commented out
   var x = document.createElement("br") //creating a <br> html element 
   var y = document.getElementById("body") // reference to the html body
   y.appendChild(x) //appending the <br> to the html body
   document.write(i+": "+i.toString(2) + " ") //writing to the document

}

for(i=0;i为了使代码更简洁,避免
document.write()
而且也不会在每次向DOM追加元素时触发重绘,您可以将标记放入变量中,然后设置主体(或希望列表输出到的任何其他元素)的
innerHTML
,只会重新绘制一页

var标记=”;

对于(i=0;i字符串连接的替代方法是使用:

…由于文档片段不是活动文档树结构的一部分,因此对该片段所做的更改不会影响文档、导致回流或产生更改时可能发生的任何性能影响

const fragment=document.createDocumentFragment();

对于(让i=0;我想知道你应该去哪里,你需要决定你到底需要去哪里。预期的输出将是对你的帖子的一个很好的补充。所以创建元素并设置文本附加元素。没有必要获取正文255次,你可以在循环外创建一个变量并引用它。另外,我不会创建255
,相反,我会为所有这些问题创建一个容器,并将每个数字包装在一个跨距中。然后我会设置跨距,每次都换一行,但这只是个人偏好。对于那些没有实际具体问题,但正在寻求“改进”的问题,这可能是一个更好的地方:谢谢,我以后会去那里,因为我有很多代码审查问题!谢谢你的回答!嗯,很有趣,所以片段有点像一个变量,对文档没有什么影响?谢谢。谢谢你的回答!哇,这是精确的代码:-)我猜markup是for循环外的全局空变量,该循环填充了输出。然后,您将document的body.innerHtml设置为markup变量,可以说,一次打印出输出。确切地说,浏览器将通过将标记转换为实际DOM元素作为元素的子元素来更新DOM,然后触发在渲染引擎中刷新,而不是在每次添加新的子DOM节点时触发refreh。实际上,现代浏览器有办法优化它,并尝试不在添加的每个节点上重新绘制,但您不应该依赖它。