自己親自測了以下:
<a href="javascript:void(0) " onclick="on(this)">鏈接</a>:先執行on函數,頁面不動

<a href="#" onclick="on(this)">鏈接</a>:先執行on函數,回到頂部
<a href="https://www.baidu.com" onclick="on(this)">鏈接</a>:先執行on函數,再跳到百度首頁
補充 <a href="javascript:fun();":調到fun函數中
以下是網友總結:
javascript:是偽協議,表示url的內容通過javascript執行。
void(0)表示不作任何操作,這樣會防止鏈接跳轉到其他頁面。
這麼做往往是為了保留鏈接的樣式,但不讓鏈接執行實際操作,具體的操作交給鏈接的onclick事件處理
void(0) 是一段javascript代碼,返回值是undefined,href='javascript:undefined'的時候也就是你點了鏈接,
但什麼也不做。之所以這麼寫,是同js給這個<a>增加onclick事件,
去做為一個鏈接。這樣的好處是,鼠標經過鏈接的時候是手型,而且用户並不知道這個鏈接執行的是什麼。
<a href="#" onclick="window.close()">關閉</a>
將href="#"是指聯接到當前頁面,其實是無意義的,頁面也不會刷新,關鍵是後面的onclick,當點擊“關閉”時,會執行window.close()代碼。

你或許會説為什麼不直接寫成<a onclick="window.close()">關閉</a>
如果這樣寫,關閉這兩個字就不會作為超聯接處理,效果看上去會差一些。你可以自己試試。

我來詳細告訴你javascript:void(0) 代表些鏈接無返回值,通常用於如:

<a href="javascript:void(0) " onclick="on(this)">鏈接</a>
執行onclick事件並無返回值,頁面不會產品變動.不加這個的話,你一點就會回到頂端。
補充 <a href="javascript:fun();"
這樣點擊就執行fun()函數了