JavaScript - void 鍵字:初學者指南
你好,未來的 JavaScript 巔峰大師!今天,我們將踏上一段令人興奮的旅程,探索 JavaScript 裡的 void
鍵字世界。別擔心如果你之前從未寫過一行代碼——我將成為你的友好指南,我們將一步一步地探索這個主題。所以,拿起你的虛擬魔杖(也就是你的鍵盤),我們一起來深入探討!
void 鍵字是什麼?
在我們深入細節之前,讓我們先了解 void
是什麼。在 JavaScript 裡,void
是一個運算符,它計算一個表達式然後返回 undefined
。現在,你可能會想,"我到底為什麼要想這麼做呢?" 嗯,我好奇的朋友們,它有其用途,我們即將揭開它的神秘面紗!
語法
void
鍵字的語法非常簡單:
void expression
在這裡,expression
可以是任何有效的 JavaScript 表達式。void
運算符將計算這個表達式,但總是返回 undefined
。
讓我們看一個簡單的例子:
console.log(void 0); // 輸出:undefined
console.log(void(0)); // 輸出:undefined
console.log(void "Hello"); // 輸出:undefined
console.log(void (2 + 3)); // 輸出:undefined
正如你所見,無論我們在 void
後面放入什麼表達式,它總是返回 undefined
。這就像一個魔術師能將任何東西變成兔子——除了我們的魔術師將一切都變成了 undefined
!
void 鍵字的優先級
現在,讓我們來討論一些更高级的內容——void
鍵字的優先級。在 JavaScript 裡,運算符有不同的優先級,這決定了它們的計算順序。
void
運算符具有非常高的優先級。這意味著它將在大多數其他運算符之前被計算。讓我們看一個例子:
let x = 1;
console.log(void x === undefined); // 輸出:true
console.log(void (x = 5)); // 輸出:undefined
console.log(x); // 輸出:5
在這個例子中,void x === undefined
被計算為 (void x) === undefined
,而不是 void (x === undefined)
。void
運算符首先應用於 x
,返回 undefined
,然後這個值與 undefined
比較。
在第二行中,即使我們正在將 5 賦值給 x
,void
運算符仍然返回 undefined
。然而,賦值操作仍然會發生,我們可以在第三行看到這一點。
javascript:void(0) 是什麼?
你可能曾在 HTML 中遇到過 javascript:void(0)
,特別是在 anchor 標籤的 href
屬性中。讓我們來揭開它的神秘!
<a href="javascript:void(0);" onclick="console.log('Clicked!')">點我</a>
在這個例子中,javascript:void(0)
用於阻止鏈接的默認行為(默認行為會導致跳轉到新頁面)。onclick
事件仍然會觸發,但鏈接不會有其他行為。
這就像在扔球給狗之前告訴它 "留下" 一樣——狗看見了動作但不會移動!
void 鍵字與函數
void
鍵字也可以與函數一起使用。讓我們看一個例子:
function greet() {
console.log("Hello, world!");
}
console.log(greet()); // 輸出:Hello, world! undefined
console.log(void greet()); // 輸出:Hello, world! undefined
在這兩種情況下,"Hello, world!" 都會被輸出到控制台。然而,greet()
隱式地返回 undefined
(因為在 JavaScript 中,如果函數沒有返回語句,則默認返回 undefined
),而 void greet()
明確地返回 undefined
。
void 鍵字與立即調用的函數表达式(IIFE)
最後但同樣重要的是,讓我們看看 void
如何與立即調用的函數表达式(IIFE)一起使用。IIFE 是一個在定義後立即運行的函數。
void function() {
console.log("我是一個 IIFE!");
}();
// 輸出:我是一個 IIFE!
在這種情況下,void
用於確保函數表達式被當作表達式對待,而不是聲明。這就像在悄悄進入派對之前穿上偽裝——函數得以運行,但它之後不會留下痕跡!
void 鍵字方法的總結
這裡有一個方便的表格,總結了我們可以使用 void
鍵字的不同的方式:
方法 | 示例 | 描述 |
---|---|---|
基本使用 | void 0 |
返回 undefined
|
與表達式一起使用 | void (2 + 3) |
評估表達式,返回 undefined
|
在 HTML 中 | <a href="javascript:void(0);"> |
阻止鏈接的默認行為 |
與函數一起使用 | void greet() |
呼叫函數,返回 undefined
|
與 IIFE 一起使用 | void function() {}(); |
執行 IIFE,返回 undefined
|
好了,各位!我們已經穿越了 void
的領地,從其基本語法到其更高级的使用方法。記住,像任何編程工具一樣,void
有其特定的用途。它可能不是你每天都要用的東西,但理解它會使你成為一名更全面的 JavaScript 開發者。
持續練習,保持好奇心,在你意識到之前,你將會像專業人士一樣施展 JavaScript 的法術!下次見,快樂編程!
Credits: Image by storyset