我經常看到的代碼,人們使用分割方法定義一個人口稠密的陣列,像這樣:在JavaScript中,爲什麼要定義一個數組與分裂?
var colors = "red,green,blue".split(',');
這是如何不同於:
var colors = ["red","green","blue"];
難道僅僅是爲了避免引用的每個值?
我經常看到的代碼,人們使用分割方法定義一個人口稠密的陣列,像這樣:在JavaScript中,爲什麼要定義一個數組與分裂?
var colors = "red,green,blue".split(',');
這是如何不同於:
var colors = ["red","green","blue"];
難道僅僅是爲了避免引用的每個值?
拆分字符串是創建數組的不好方法。該方法存在幾個問題,包括性能,穩定性和內存消耗。它需要CPU時間來解析字符串,它很容易出錯(雙逗號,字符串中的空格等),並且意味着腳本本質上必須在內存中存儲兩倍的數據。
這不是一個好主意,而且很可能只是一個人在第一次學習字符串和數組時遇到的壞習慣。這或者他們試圖聰明地進行某種編碼練習。
作爲一個經驗法則,您應該將字符串解析爲數組的唯一時間是如果您從外部源讀取字符串數據並需要將其轉換爲本機類型。如果您事先已經知道這些值,則應該自己創建該數組。
有人可能會這樣做的一個可能原因是減少源代碼中的字符數量,交換帶寬性能。 'a,b,c,d,e,f,g'.split(',')
是比['a','b','c','d','e','f','g']
少的字符。
沒有區別,只是不好的做法和懶惰,如果有的話。我能想到使用第一種方法的唯一原因是,如果數據自然以字符串形式出現並使用數組文本使其完全不可讀。
第一個只是一個壞習慣。 –
並花費更多的CPU週期。 –
我想也許有人想要有特殊的代碼:)。分割創建數組有性能問題,它需要在字符串之前進行操作。 –