code: function makeHTML(...args) {
    if (args.length < 2) {
      return null;
    }
    let cla = args[0];
    let rootElement = makeElementFromObj(args[1], cla);
  
    for (let i = 2; i < args.length; i++) {
      if (Object.prototype.toString.call(args[i]) === "[object Array]") {
        let result = makeHTML(cla.concat(args[i][0]), ...args[i].slice(1));
        if (result) {
          rootElement.appendChild(result);
        }
      } else if (isNode(args[i])) {
        rootElement.appendChild(args[i]);
      } else {
        rootElement.appendChild(makeElementFromObj(args[i], cla));
      }
    }
    return rootElement;
  }
docs: /*
  makeHTML( ["cat", "dog"], {tab:"div", class:[`btn`, `btn-sm`], innerHTML: "inner"},
  [[], {tab:"div", class:[`btn`, `btn-sm`], innerHTML: "inner"},
  {tab:"div", class:[`btn`, `btn-sm`], innerHTML: "inner"}
  ]
  )
   第1引数: 共通して付けるクラス 第2引数: root エレメント block要素。block要素以外も取れるようにする その他: rootエレメントの子要素。配列を渡すと [[class], root, child1, ...]となる