2015-12-15 23 views
0

我試圖創建需要最少字節數的代碼,並且適用於包括IE 7在內的所有瀏覽器。這種值設置是否在Javascript中起作用?

在本例中,程序調用dosomething('x1')和dosomething('x2') 。

如果我有這樣的代碼:

var items,item,index,count; 
items=Array('x1','x2'); 
count=items.length; 
for (index=0;index<count;index++){ 
item=items[index]; 
dosomething(item); 
} 

難道我把它降低到這一點,有它仍然起作用一模一樣的在所有瀏覽器:

var a=Array('x1','x2'),c=a.length,i; 
for (i=0;i<c;i++){ 
f(a[i]); 
} 

我明白我改變了變量名並調用函數名稱,但我的目標是在代碼中使用盡可能少的字節數來執行代碼。

我只是不確定是否在相同的聲明列表中聲明一個變量等於來自前一個變量的值的屬性實際上會返回正確的結果。

換句話說,是否var a=Array('x1','x2'),c=a.length...工作,還是我必須專門做var a=Array('x1','x2');var c=a.length;,使其在所有瀏覽器,包括IE 7中工作?

+0

您可以通過使用:a = ['x1','x2']而不是a = Array('x1','x2') – Roberto

回答

0

您可以使用Array.map從IE 9

var items = Array('x1','x2'); 
items.map(dosomething(item)); 
1

這就是谷歌Closure Compiler服務返回:

var a,b,c,d;a=["x1","x2"];d=a.length;for(c=0​;c<d;c++)b=a[c],dosomething(b); 

你可以在網上找到很多不同的JavaScript壓縮機自動化的過程中,你是手工編碼現在。然而,understand how they work總是很好,因爲它有助於編寫更好壓縮的代碼。

對於IE,您可以通過更改IE調試器面板中的仿真設置來測試您的代碼。只需按F12,單擊仿真選項卡,然後將文檔模式調整爲7(IE7)。

希望這足以讓你開始正確的方向。

+0

我好奇。爲什麼'b = a [c],dosomething(b)'而不是'dosomething(a [c])'? – Mike

+0

@Mike - 好問題。結果是一樣的,但在這種情況下,第二種方法會更好。然而,這並非總是如此。數組元素通常會在函數中多次使用,然後用單個字符變量替換它會更高效。我用過的壓縮器假定這個並自動替換數組元素。 – Roberto

相關問題