2013-09-23 44 views
1

javascript void語句計算表達式,並返回undefined值。這很有用,因爲可以重新定義全局變量undefined,但爲什麼它會評估en表達式?大多數人只使用0,作爲爲什麼javascript void語句會評估表達式?

void 0; 
void(0); 

看着Raghu的回答,在文檔中說

這個操作符允許將產生副作用到哪裏,其值是不確定的表達需要的地方表達。

但你可以給我,你不能只是把其中值ùndefined`期望的位置void(0)一個例子,評估與另一條線路上的副作用體現在哪裏?

+1

爲什麼會有人這樣做?這是非常不透明的。 –

+0

[javascript:void(0)「是什麼意思?](http://stackoverflow.com/questions/1291942/what-does-javascriptvoid0-mean) – Bucket

+0

相關,但我不確定它是一個重複。 –

回答

2

的主要用途void操作的是(或者是,今天你可能更願意使用事件處理程序)來阻止點擊具有javascript: URL的鏈接時的任何導航。此javascript函數返回undefined時不會導航。 void運營商通常是實現這一目標的最短途徑。

<a href="javascript: void console.log('click') ">log click to console</a> 

,或者更一般的

<a href="javascript: void doSomething() ">do something</a> 

所看到的這個fiddle

1

標準文檔應有助於理解爲什麼它的計算結果作爲一個表達式,在那裏,爲什麼大多數人使用它

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void

+0

所以它確保可以評估表達式,使其副作用發生,而不會返回任何東西。但是,你能否給我舉一個例子,你不能只將表達式放在沒有賦值的行上,這樣它的返回值就不會保存在任何地方? – bigblind

+1

function getValue(){ var a,b,c; a = void(b = 5,c = 7); 文件。寫('a ='+ a +'b ='+ b +'c ='+ c); } – Raghu

+0

有意義 – bigblind