Сначала браузер читает DOM(структуру html), потом может с ней уже взаимодействовать js. Браузер не может нарушить порядок исполнения, кроме window.onload, но это ты поймёшь потом.
На счет parent.contains(child) https://learn.javascript.ru/compare-document-position . В моем случаи так Я кликаю на заголовок и получается что e.target это парент(Test текст) а чайлд это вся белая область, e.target.contains(modalComponentWrapperNode.current) возвращает тру, но это же не так, текст не родитель белой области