37
如果你去一個谷歌的結果頁面,並運行rwt.toString()
,你會看到,返回調用這個函數是:在javascript中使用「return!0」有什麼意義嗎?
return !0;
我想不出任何理由爲什麼這不會永遠是true
。這僅僅是true
的簡寫,還是有更多的進展呢?
如果你去一個谷歌的結果頁面,並運行rwt.toString()
,你會看到,返回調用這個函數是:在javascript中使用「return!0」有什麼意義嗎?
return !0;
我想不出任何理由爲什麼這不會永遠是true
。這僅僅是true
的簡寫,還是有更多的進展呢?
它總是如此,但它需要2個字節下載(!0
是2個字符)而不是4個字節來下載布爾值true
。
大多數Javascript minifiers會將true
轉換爲!0
,並將其轉換爲!1
。您可以通過在Google Closure Compiler上輸入var y = true;
並進行簡單優化來看到一個示例:http://closure-compiler.appspot.com/home
但是,它只需要1個字節即可下載1. return 1;本來會工作的,不是嗎?非零,我們都知道你不測試爲真,你測試不是錯誤的。 – stu 2012-01-05 21:34:28
這很有趣。大多數JavaScript實現優化!0和!1爲true和false而不計算? – Kekoa 2012-01-05 21:41:34
@stu'return 1;'返回'number'類型。如果有人使用'==='或'!=='運算符的返回值,他們會從'!0'得到預期的結果,但不會從'1'得到預期的結果。 – Paulpro 2012-06-22 16:58:20