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 事件。
語法
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 事件。
留言
張貼留言