2011-11-09 126 views
0

只是一個匆匆的字符串表現:雖然這是更語義寫這樣的代碼:聲明VAR VS在JS

var b = 'lorem'; 
var f = 'ipsum'; 

for (var i = 0; i < 1000; i++) 
{ 
    b = b + f; 
} 

我不知道有多少有宣佈var穿上JS的性能,例如開銷,作爲反對(一混亂恕我直言):

var b = 'lorem'; 

for (var i = 0; i < 1000; i++) 
{ 
    b = b + 'ipsum'; 
} 

這只是一個小例子,但我努力思考如何這可能會影響大量應用的一個巨大的代碼庫,有沒有人有任何見解或性能數據手?

回答

0

由於沒有共同的Javascript解釋器,但許多不同,可能會有所不同,從執行到實施。對於所有表現問題:最好的方法是衡量它。在循環前後抽出時間。

0

我懷疑,與大多數現代JS解釋器的差異應該從可以忽略到沒有(考慮到變量f總是本地的,沒有複雜的計算)。 我懷疑現代JS解釋器(至少是基於瀏覽器的)會先分析代碼。我並不真正希望他們「編譯」代碼以獲得準確的結果(太複雜),但應該引入一些優化級別,因此性能差異可以忽略不計。
更復雜的例子,其中字符串以更復雜的方式生成,差異應該贊成字符串文字。

在這裏,我以前提是現代化的JS解釋總是有時間來對代碼進行分析,並介紹了一些「便宜」優化的代碼

+0

作爲Mnementh指出這應該從實現而異 – friendzis

+0

爲什麼你認爲(和這個問題意味着)文字應該更快? – katspaugh

+0

辯論是好的! –