我在幾個地方見過這個,最着名的是plugins.js
文件HTML5 Boilerplate,我不知道爲什麼。「a,b,c」.split(「,」)優於[「a」,「b」,「c」]的優點是什麼?
背後有什麼用類似
var d = "header,nav,footer".split(",");
代替
var d = ["header", "nav", "footer"];
的動機是什麼?
我在幾個地方見過這個,最着名的是plugins.js
文件HTML5 Boilerplate,我不知道爲什麼。「a,b,c」.split(「,」)優於[「a」,「b」,「c」]的優點是什麼?
背後有什麼用類似
var d = "header,nav,footer".split(",");
代替
var d = ["header", "nav", "footer"];
的動機是什麼?
在Moore's Law的必然壓力之下,尋找軟件消耗更多CPU週期來完成相同工作的方法很重要。您的具體案例(使用split
而不是先寫出您的意思)是「微型去優化」的一個例子。
雖然有效率更高的方法來獲得低效率(代碼生成模板,預處理器和類似的工具),但對於程序員掌握大量這樣的技巧很重要。
這很可愛... – Asaph 2011-12-27 01:47:04
你是我的新英雄。 – 2011-12-27 02:07:11
人們往往更喜歡能寫東西,一個字符串內,而不必編寫與報價等
但是單獨字符串 - 如果可能 - 它通常是更好的使用空間,而不是逗號來做到這一點,因爲在許多如果沒有指定參數,split()
函數將使用它們作爲默認分隔符。
但總而言之 - 這只是開發者喜歡寫的內容。這當然不是更快,但差異並不重要(反正你不會打電話這十億次,是你?)
'我根本不會調用它,我想知道爲什麼這個月我看過它三次,並且使用不同的分隔符,比如管道和逗號,正如你所說 - 默認值是一個空格。想到也許我錯過了一些東西。 – wlangstroth 2011-12-27 01:45:03
聞起來像不同的開發人員 - 除非有人希望能夠使用他沒有在其中一個元素中使用的分隔符。 – ThiefMaster 2011-12-27 01:45:50
沒有優勢。實際上,它可能效率稍低(我沒有檢查過)對字符串方法的調用,但可能不是太多。
這只是個人偏好。此外,人們傾向於使用任何語言使用string.split()。這很性感。
爲什麼寫x *(1000/4),如果你可以寫x * 250?我的意思是爲什麼給運行時增加字符串解析,分裂(以及由於缺少逗號,字符串內的逗號等引起的錯誤的機會)等令人頭痛的問題?我沒有看到任何超出某種奇怪的編碼習慣的方式編寫代碼。
更容易打字,因爲您的報價較少。不適合比單詞列表更復雜的東西。
它可能是一個不完全重構的結果:也許這個字符串最初來自一個配置文件(或者有計劃將它分割成一個配置文件),或者來自用戶輸入。在這種情況下,從一個字符串分裂將是自然的。
或者它甚至可能會與使用此類型輸入的其他部分的樣式相匹配。也許是這樣的:
function get_sections()
{
if has_config()
{
return get_config("sections").split(",");
}
return "header,nav,footer".split(",");
}
第三個選項可能是使翻譯更容易。
不是說我會在任何一種情況下使用它,但它可能對某些開發人員有意義。
輸入速度更快,不用擔心引用不匹配 – 2011-12-27 01:38:20
更易於編輯。這值得麼?咩。 – 2011-12-27 01:39:30
你說番茄,我說番茄。 – 2011-12-27 01:40:20