JavaScript - void 鍵字:初學者指南

你好,未來的 JavaScript 巔峰大師!今天,我們將踏上一段令人興奮的旅程,探索 JavaScript 裡的 void 鍵字世界。別擔心如果你之前從未寫過一行代碼——我將成為你的友好指南,我們將一步一步地探索這個主題。所以,拿起你的虛擬魔杖(也就是你的鍵盤),我們一起來深入探討!

JavaScript - void Keyword

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 賦值給 xvoid 運算符仍然返回 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