Всё по полочкам.
1) XMLHttpRequest - необходим для перехвата ошибок в случае, когда ошибка может генерироваться в любом месте ВКЛЮЧАЯ jquery.
2) alert(). Неожиданно, но alert присутствует в разных справочниках, банальный пример:
https://learn.javascript.ru/uibasic , справа есть "протестировать" и т.д.
Странно, почему курс обучающий принципам alert не может вывести этот самый alert пользователю.
Усомниться можно лишь в том, что это сообщение на странице, на которой оно не нужно. Но с таким успехом можно абсолютно любой сайт окунуть в котёл с говном, ведь все они подключают Angular или jQuery и 90% возможностями не пользуются, но подключают всё на одной странице.
Так что тут тоже нет очевидного минуса.
3) Table. О нет, кто-то на странице применил тег <table>, который официально числится deprecated. Oh, wait, HTML 5.2 редакция не отметила table как deprecated... взрыв мозга
4) А что за прикол с h2 + div ? Не вижу ошибки. Перечитал трижды, объяснишь?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).