Ответы Mail.ru: Че тут не так с append child?

Судя по сообщению об ошибке, проблема заключается в том, что вы пытаетесь вызвать AppendChild для document.body, но document.body имеет значение null.

Обычно это происходит, если скрипт запускается до полной загрузки DOM. Чтобы это исправить, вам нужно дождаться загрузки DOM, прежде чем обращаться к элементам или изменять их.

Несколько способов сделать это:

1) Обернуть код в обработчик событий DOMContentLoaded:

 document.addEventListener('DOMContentLoaded', () => { 
  let g = document, h, l = document.createElement('div'), 
  // остальной код 
 
  document.body.appendChild(b, f); 
}) 

2) Переместить <script> непосредственно перед закрывающим тегом </body>.

Ключевым моментом является то, что DOM должен быть полностью загружен, прежде чем пытаться получить доступ/изменить такие элементы, как document.body. Ожидание DOMContentLoaded гарантирует, что документ готов.