JavaScript не является однопоточным.
Он просто имеет цикл обработки событий (который является основной точкой входа в программу) и не имеет встроенных механизмов для создания новых потоков.
Функции, предоставляемые хост-средой может охватывает другие темы.