Href # оставляет ссылку ссылкой и является якорем, скролящим на верх страницы. Раньше делали такие костыльные заглушки через #, потом через javascript:void(0), который возвращал undefined (тогда undefined можно было заменить в скрипте, поэтому использовали ещё один костыль с void(0)). С html5 href атрибут больше не является обязательным для ссылок, поэтому самое лучшее решение сделать, как указано в спецификации, - убрать href совсем, если ссылка пока ещё не ссылка.
хм, а если я делаю href="#" для того, чтобы бэкендер мне заполнил ссылки на нужные, мне тоже href надо удалять?
там был вопрос, как заменить все на #, а не как лучше сделать)