◆ elem.hrefは絶対パス(フルパス)になる
◆ elem.getAttribute("href")で取ればHTMLに書いたまま取れる

document.getElementById()で要素を持ってきてelem.hrefをaタグにすればリンク先を持ってこれます
他の属性みたいにhtmlのhrefに書いたものがそのまま受け取れると思ってたのですが違いました

hrefプロパティにはパス解決された最終的なURLが入ります
じゃあどうすればHTMLに書いた相対パスや#だけのをJavaScriptで取得するのか と言うことですが 普通にgetAttribute()メソッドを使えば取れました
getAttibuteが面倒なので直接プロパティから値取ってくることが多いのですがこういう違いがあることを知っておかないとですね

「/」だけ

TOPへ <a href="/"></a>

elem.href

elem.getAttribute("href")

「../」で相対パス

TOPへ <a href="../"></a>

elem.href

elem.getAttribute("href")

「#」移動

#abcd <a href="#abcd"></a>

elem.href

elem.getAttribute("href");