2010-06-18 78 views
5

我看到這樣的代碼,所有網站上爲什麼我看到使用string.split()創建javascript數組?

var days= "Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "); 

爲什麼這樣做,而不是

var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; 

我不認爲懶惰或無知有什麼用它做。這是出於jQuery 1.4.2

props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" ") 

他們這樣做到處都是。

+4

懶惰......? :-) – 2010-06-18 12:56:03

+0

懶惰?速度絕對不好,我個人認爲它不會提高可讀性。 – MvanGeest 2010-06-18 12:56:23

+1

這是字面上*太聰明*。 – 2010-06-18 12:58:45

回答

11

我想這是因爲你不必引用和分隔數組的每一個字符串。同樣,在perl中,許多人使用qw(a b c d e f g)而不是('a', 'b', 'c', 'd', 'e', 'f', 'g')。所以好處是雙重的:

  1. 它更快,更容易編寫和修改(顯然可以辯論)。
  2. 它的位數較小,因此您可以節省一些帶寬。

見位大小:

var days= "Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "); 
// 81 characters 

VS

var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; 
// 91 characters 
+0

+1,你打我:-) – 2010-06-18 13:16:52

+0

實際上,它只會減小3個字節(因爲你會使用縮小器意味着沒有不必要的空白),但是當然,它仍然有一些帶寬保存我猜... – Blixt 2010-06-18 13:20:02

+0

我喜歡它。在我的測試中,字符串拆分方式需要執行大約1.5倍的時間,但實際上只能在數千次迭代中測量。國際海事組織它不容易閱讀,但它確實使文件更小,寫得更快。 – Matthew 2010-06-18 13:21:46

0

它也可能是有意義的,如果初始字符串在文本引號或雙引號。

0

「81個字符和91個字符」< <不錯的觀察,但它再次增加了很少的處理時間來將字符串轉換爲數組,以及如果有時需要添加一些其中有2個字的東西。

可能是他們喜歡這種編碼風格。

IDK

0

你可以有星期名稱的20串20種語言,並使用一個單一的分裂返回正確的陣列的用戶。

相關問題