SOURCE

console 命令行工具 X clear

                    
>
console
function bfs(node, callback) {
  var queue = []
  while (node != null) {
    callback(node)
    if (node.children&&node.children.length != 0) {
      for (var i = 0; i < node.children.length; i++) {
        queue.push(node.children[i]) //借助于队列,暂存当前节点的所有子节点
      }
    }
    node = queue.shift() //先入先出,借助于数据结构:队列
  }
}

var all = document.querySelectorAll('*')

bfs(document.body,(node)=>{
    console.log(node.className)
})
<div class="root">
  <div class="container">
    <section class="sidebar">
      <ul class="menu"></ul>
    </section>
    <section class="main">
      <article class="post"></article>
      <p class="copyright"></p>
    </section>
  </div>
</div>