7
我注意到Closure Compiler編譯true和false(或者1和0)爲!0和!1。這對我來說沒有意義,因爲它的字符數是1和0的兩倍。是否有這個原因?有什麼好處嗎?Is!0和!1比1和0好嗎?
謝謝。
我注意到Closure Compiler編譯true和false(或者1和0)爲!0和!1。這對我來說沒有意義,因爲它的字符數是1和0的兩倍。是否有這個原因?有什麼好處嗎?Is!0和!1比1和0好嗎?
謝謝。
1 !== true
和0 !== false
,但!0 === true
和!1 === false
。編譯器只是確保類型保持布爾型。如果更改第一行var a = 1;
第一條件將被虛假和第二真實
var a = true;
if(a === true) {
console.log('True!');
}
if(a === 1) {
console.log('You should never see this.');
}
:
考慮這個例子。使用var a = !0;
腳本仍然可以正常工作。
'!0'具有節省2個字符的額外好處,在縮小過程中'!1'具有節省3的額外好處。方式過度優化,但如果一臺機器正在進行優化,誰在乎。 – Norguard 2013-03-16 07:37:05
有趣,謝謝! – Suffick 2013-03-16 07:41:05