我使用一些代碼來學習JavaScript的JavaScript OOP,它包含下面的代碼片段,我試圖瞭解:瞭解無效
void window.setTimeout(function() {
$(".item").css("opacity", 1)
}, 400);
我從來沒有用過的空操作,並從documentation ,無法理解爲什麼在這種情況下使用它?
我使用一些代碼來學習JavaScript的JavaScript OOP,它包含下面的代碼片段,我試圖瞭解:瞭解無效
void window.setTimeout(function() {
$(".item").css("opacity", 1)
}, 400);
我從來沒有用過的空操作,並從documentation ,無法理解爲什麼在這種情況下使用它?
正如您已經閱讀過的那樣,void
運算符將評估其操作數,然後生成值undefined
。當你撥打setTimeout
時,它會返回一個數字(定時器句柄)。所以void setTimeout(...)
結果在undefined
而不是一個數字。
如果代碼確實如您所示,那麼void
運算符沒有任何用處,因爲從setTimeout
返回的值沒有用於任何事情。
[我已經刪除我寫的CoffeeScript位,因爲我無法創建一個例子; CoffeeScript編譯器抱怨void
是一個保留字(它是,但這就是我使用它的原因)。我不做CoffeeScript,所以最好把它刪除。]
我明白了。因此,如果它是返回一個值的函數的一部分,並且你不在setTimeout()的返回值之後,那麼這是一個有用的工具。謝謝Sir – 2015-02-23 11:46:20
@SamHolguin:是的,雖然如果代碼真的是JavaScript,那就沒有必要;只是不要把'return'放在它的前面,而且這個值也不會被使用。 – 2015-02-23 11:47:03
你從哪裏找到那個代碼片段?你完全正確,在這裏使用'void'是沒有用的。 – Bergi 2015-02-23 11:37:28
它可能用於不返回setTimeout返回的數字,而不是返回該值,而不是它會在該示例中產生任何差異,但將其保存在函數中並在其前面添加「return」,它可能會。 – adeneo 2015-02-23 11:37:47
@Bergi至少我在理解文檔:) – 2015-02-23 11:40:27