1. 介紹
JavaScript 是現代網頁開發中不可或缺的程式語言。特別是在控制連結行為或處理未定義值時,像「void 0」和「javascript:void(0)」這樣的表達式經常被使用。 這些表達式可能讓初學者感到困惑,但正確使用它們可以提升可讀性和功能性。本文解釋「void 0」和「javascript:void(0)」的含義和使用情境,並介紹現代開發環境中的最佳實務。 閱讀本文後,您將學到:
- 「void 0」是什麼及其作用
- 「javascript:void(0)」的使用範例及其目的
- 使用更安全替代方案的現代實作方法
從這裡開始,我們將逐步介紹 JavaScript 中「void 0」的基本知識和實際範例。
2. void 0 是什麼?
void 0 的基本作用
「void 0」寫作如下:
console.log(void 0); // undefined
這段程式碼總是輸出「undefined」。
與 undefined 的差異
在 JavaScript 中,「undefined」是一個變數,可能會被無意中覆寫。例如:
var undefined = "test";
console.log(undefined); // "test"
如果「undefined」被覆寫,它就會失去原本的意義。 為了避免這種情況,「void 0」傳統上被用作保證返回「undefined」的方法。
使用範例
以下是從函式中明確返回「undefined」的範例。
function example() {
return void 0;
}
console.log(example()); // undefined
void 0 的實際使用情境
- 檢查未初始化的值
var value = void 0; console.log(value === undefined); // true
- 安全的連結控制
<a href="javascript:void(0)">Link</a>
在這個範例中,點擊連結不會導航到其他頁面。 
3. javascript:void(0) 的含義與使用
javascript:void(0) 是什麼?
「javascript:void(0)」使用 JavaScript 的「void」運算子來返回「undefined」。
<a href="javascript:void(0)">A link that does not navigate</a>
點擊這段程式碼不會導致頁面導航或動作。
使用範例
- 按鈕點擊時執行 JavaScript
<a href="javascript:void(0)" onclick="alert('Clicked!')">Button</a>
- 表單驗證
<a href="javascript:void(0)" onclick="validateForm()">Submit</a>
在此,表單驗證完成前會防止頁面轉換。
4. javascript:void(0) 的問題與風險
對 SEO 的負面影響
搜尋引擎可能無法正確爬取使用 javascript: 方案的連結。
對於注重 SEO 的網站,應避免這種做法。
降低可存取性
螢幕閱讀器可能將「javascript:void(0)」視為一般連結,這會導致依賴輔助技術的使用者產生不明確的行為。
JavaScript 停用時的問題
如果 JavaScript 被停用,「javascript:void(0)」完全無法運作,導致使用者體驗降低。
5. javascript:void(0) 的替代方案
1. 使用 <button> 標籤
使用按鈕元素可以維持適當的 HTML 結構,同時允許以 JavaScript 進行完整控制。
<button type="button" onclick="alert('Clicked!')">Click</button>
2. 結合 <a> 標籤與 event.preventDefault()
<a href="#" onclick="event.preventDefault(); alert('Clicked!')">Click</a>
這種方法使用 JavaScript 防止頁面導航,同時保留 href="#" 以相容 SEO 和可存取性。 
6. javascript:void(0) 的摘要
關鍵要點回顧
- 「javascript:void(0)」會停用預設的連結行為,並僅執行 JavaScript 事件。
- 然而,它具有 SEO 和可存取性的缺點,因此不適合現代開發。
- 更安全且更靈活的替代方案包括使用
<button>標籤或event.preventDefault()。
7. 推薦的最佳實務
1. 維持語意 HTML 結構
使用有意義且語意適當的 HTML 標籤(例如 <button>、<form>)以確保良好的 SEO 與可及性。
2. 在 JavaScript 中管理事件控制
使用事件監聽器與 preventDefault() 以彈性且現代的方式處理互動。
3. 從舊有程式碼遷移
如果現有程式碼使用「javascript:void(0)」,請考慮逐步以現代替代方案取代它。
8. 結論
整體重點
- 「void 0」總是回傳「undefined」,有助於防止意外覆寫全域
undefined值。 - 「javascript:void(0)」會停用連結導向並用於控制 JavaScript 執行,但會帶來 SEO 與可及性問題。
- 現代網頁開發建議使用語意化的 HTML 標籤與
preventDefault(),以獲得更安全、符合標準的行為。
最後建議
雖然「void 0」與「javascript:void(0)」在歷史上曾是有用的技巧,但在現代 JavaScript 開發中並非總是理想的選擇。
對於新專案,建議採用以 SEO、可及性與可維護性為優先的最新方法。
建立對這些概念的扎實理解,並在實務開發中有效運用。



