Как убрать якорь (hash, #) из URL с помощью Javascript

Это реализуется с помощью метода history.pushState(state, title, url) примерно так:

Метод pushState() принимает 3 параметра: state, title (который в данный момент игнорируется), URL.

Для нас важен третий параметр — URL. Можно передавать относительный URL, в таком случае он образуется от текущего URL.

C помощью объекта window.location мы получаем относительный URL без якоря

window.location.pathname — строка пути (относительно хоста)

window.location.search — часть адреса после символа ?  (включая символ ?). Без якоря