Если очень утрированно: PHP – это надстройка над сервером, а JS – это надстройка над клиентским приложением.
PHP – по серверной части. Модуль PHP запускается на сервере (в виде демона или компонента веб-сервера), и работает непосредственно с сервером. С помощью PHP можно получить прямой доступ к файловой системе сервера (даже вне каталога сайта, если есть соответствующие права), можно выполнять определённые команды на сервере (eval), можно устанавливать соединения от имени сервера (то же соединение с СУБД MySQL/MariaDB происходит от сервера, а не от клиента).
JS – это про клиентскую часть (если говорить про JS в привычном его понимании, без всяких препроцессоров/серверных приложений типа node.js и тому подобных). Все действия выполняются именно от клиента. Прямого доступа к файловой системе сервера JS не имеет. Все запросы, отправляемые на иной ресурс (XHR, WebSocket, да даже соединения с сетевыми СУБД при использовании соответствующих библиотек) – будут происходить от имени пользователя.
Значительный плюс PHP перед JS – недоступность исходного кода. PHP отдаёт на выход только то, что указано конкретно как: "вывести то-то", оставляя приватные "задворки" – в тайне. JS же, в основном, имеет открытый для пользователя исходный код. Если стоит задача: защитить исходный код от пользователя – препроцессоры мастхэв. Но препроцессоры имеют и минус: они способны генерировать вывод только при запросе, без адекватной интерактивности.
Это разные технологии, которые в понимании начинающих разработчиков смешались из-за обилия промежуточных решений, и, в целом, путаницы в разделении клиентской части и серверной части. JS не заменит PHP, PHP не заменит JS. Всему своё место.