2014-01-31 132 views
1

看着grunt-strip插件刪除console.logs。我意識到它用0;取代了console.log語句。 0;有什麼作用?什麼是0;在javascript中的意思

+1

你能後的幾行代碼爲前/後例子? '0;'在JS中沒有任何作用 – Cerbrus

+0

它們可以用''''替換它(空)...... – techfoobar

+0

它基本上是一個'void'類型的東西,它沒有做任何有意義的事情。 – gpgekko

回答

6

它沒有任何作用,沒有。 JS評估0並沒有結果。我們的想法是,取消console.*(用一個簡單的沒有更換)有可能打破這樣的代碼:

if(condition) 
    console.log(''); 

functionCall(); 

將成爲(與重新格式化爲重點...)

if(condition) 
    functionCall(); 

因此它被取代虛擬語句。

if(condition) 
    0; // Does nothing 

functionCall(); 

此外,代碼檢查,如果控制檯存在將返回false,因爲0是falsy。

if(console) { // Not executed when replaced by if(0) 
    // debugging action 
} 
2

它是如何做

眼下,邏輯由一個簡單的更換您的選擇 節點與falsy(0)語句。這證明可以在所有合理的情況下工作,並且減輕了對複雜重寫邏輯的需要。

在稍後的日子裏,重寫邏輯可能很重要,但成本 vs獎勵現在沒有。

來源:https://github.com/jsoverson/grunt-strip