JavaScript 中的 void 運算子介紹

void 運算子會對給定的表達式進行求值,然後直接返回 undefined。
語法

void expression

描述

這個運算子能向期望一個表達式的值是undefined的地方插入會產生副作用的表達式。

void 運算子通常只用於獲取 undefined 的原始值,一般使用 void(0)(等同於 void 0)。在上述情況中,也可以使用全域變數undefined 來代替(假定其仍是預設值)。
立即呼叫的函式表達式

在使用立即執行的函式表達式時,可以利用 void 運算子讓 JavaScript 引擎把一個函式識別成函式表達式而不是函式聲明(語句)。

void function iife() {
    var bar = function () {};
    var baz = function () {};
    var foo = function () {
        bar();
        baz();
     };
    var biz = function () {};

    foo();
    biz();
}();

JavaScript URIs

當用戶點擊一個以 javascript: URI 時,瀏覽器會對冒號後面的程式碼進行求值,然後把求值的結果顯示在頁面上,這時頁面基本上是一大片空白,這通常不是我們想要的。只有當這段程式碼的求值結果是 undefined 的時候,瀏覽器才不會去做這件傻事,所以我們經常會用 void 運算子來實現這個需求。像下面這樣:

<a href="javascript:void(0);">
  這個鏈接點擊之後不會做任何事情,如果去掉 void(),
  點擊之後整個頁面會被替換成一個字元 0。
</a>

<a href="javascript:void(document.body.style.backgroundColor='green');">
  點擊這個鏈接會讓頁面背景變成綠色。
</a>

注意,雖然這麼做是可行的,但利用 javascript: 偽協議來執行 JavaScript 程式碼是不推薦的,推薦的做法是為鏈接元素綁定 click 事件。

留言

這個網誌中的熱門文章

c語言-關於#define用法

PHP教學 - 資料型態(Data Type) - 上

CMD常用網管指令