2012-10-21 62 views
3

編輯:澄清:我的問題不關心如何使用void,但void是否真的有用。我問這是因爲人的方式似乎用它很offputting ...什麼是void()的好用

MDN Referencevoid操作,使操作員的例子中使用

<a href="javascript:void(0);">Click here to do nothing</a> 
<a href="javascript:void(document.body.style.backgroundColor='green');">Click here for green background</a> 

不完全的那種方式我們現在處理點擊事件。

在這個世界是否有地方void?有人能給我一個使用void的好例子嗎?

+2

可能重複[在javascript中有什麼點void](http://stackoverflow.com/questions/666936/what-is-the-point-of-void-in-javascript) – Bergi

回答

2

Jakob顯示void的一些實際使用案例。然而,正如他所提到的,void並不是真的需要,但我用它來測試undefined。我用它來創建自己的typeOf功能:

function typeOf(value) { 
    if (value === null) return "null"; 
    if (value === void(0)) return "undefined"; 
    return Object.prototype.toString.call(value).slice(8, -1).toLowerCase(); 
} 

你可以看一下我爲什麼這樣做here

+0

+1顯示良好的虛空使用。我猜你的使用void的情況下,情況是一箇舊的瀏覽器,其中undefined是可變的?編輯:感謝您指向我的網站,havdn't沒有聽說過它... – nimrod

+0

夥計們,你錯過了我的答案用例#1點。你不需要void來測試'undefined',因爲'(function(){}())=== void(0)'。因此,聲明「不需要有效,除非你想測試未定義」是明顯錯誤的。 – Jakob

+0

使用void更簡潔。 –

0

void(0)用於返回「undefined」,你可以在那裏寫入「undefined」,也不使用javascript:in href屬性 - 因爲它太老了,它不適用於帶有javascript的用戶禁用,如果有人在新窗口打開它,他們會看到類似javascript:showPopup(27);

1

void是用於返回undefined值的運算符,因此瀏覽器將無法加載新頁面。關於void操作符需要注意的一件重要事情是它需要一個值,不能單獨使用。

例子: -

<a href="javascript: void(0)">I am a link</a> 

輸出繼電器: -

I am a link 
+1

'void'運算符__expresses__'undefined'。它不__return__'null'。這是一個運營商。不是一個功能。 –

+0

更正和thanx更新我:) –

5

用例#1,void(0):如果你想真正的undefined(而不僅僅是變量的引用,因爲它可以被覆蓋)你不需要void。你可以像這樣得到它:(function(){}())

使用案例#2 void(exp):如果要執行代碼然後返回undefined,那麼當然可以通過將代碼封裝到函數中來實現:(function(){ exp; return undefined; }())。所以,不,我們不需要void。它沒有任何獨特之處。雖然它比上面的解決方案短,但如果你更喜歡簡短的代碼,你可以使用它(但請不要)。

+0

+1實際閱讀我的問題。 – nimrod

相關問題