2011-05-09 47 views
6

這種模式很常見;我已經看到它在幾個地方,包括jQuery的源代碼:將字符串拆分爲initiliase javascript數組有什麼優勢?

var arr = "word1 word2 word3".split(" "); 

作爲替代陣列initiliasation的「正常」的方法:

var arr1 = [ "word1", "word2", "word3" ]; 

var arr2 = new Array("word1", "word2", "word3"); 

什麼與字符串的好處分裂的方法?

+0

道歉,如果這已被問到,但我找不到它的任何'相關答案'。這也是一個困難的事情,通過谷歌找到 - 呃,它是*我* ... – 2011-05-09 12:23:13

+0

僅僅因爲jQuery使用它並不意味着它是這樣做的最令人敬畏的方式。它仍然是由個人貢獻的,所有代碼在提交之前都沒有經過精英專家的精確代碼審查... – jishi 2011-05-09 12:57:24

回答

3

From John Resig (creator of jQuery):

「我看到的唯一的好處是性格源 計數和一個字符串 ,而不是很多。」答對了!

現在我想到了,我認爲 關閉可能會優化這一點(不要 認爲YUIMIN做過)。我可以再次登記到 。

此外,Google JavaScript Style Guide建議避免new Array()因爲「陣列構造是易於出錯的,由於它們的參數」。該指南有一個更徹底的解釋。

+0

非常好 - 感謝您追蹤參考 – 2011-05-09 13:31:02

3

第一個更短。在JS庫中,這些日子是個問題。寫起來也更容易:更少的,'。錯字也很難。

+0

好點。但是,不是'更快'?我會認爲這也是lib設計的一個因素。當然,並不是太多,但在我看的例子中,只有4個字節的空間節省。 – 2011-05-09 12:33:04

+0

如果只有少數幾個元素,勝利很小(或反)。在JS壓縮機中,列表通常是50多個元素。所獲得的速度是在下載,而不是放棄腳本使其有用(不要問我爲什麼,我也不知道)。我想很多人認爲如果你的LS lib很小,那很好。 (順便說一句,我認爲你是對的:'[']'更快) – Rudie 2011-05-09 12:37:59

+0

此外,可能還有更多......也許它實際上更快(??)或更少出錯(??)。 – Rudie 2011-05-09 12:38:57