在JavaScript中構建一個CSS選擇器引擎筆者使用下面的代碼字符串中的散列字符之前刪除一切(對於TUTS +會員here可見)的教程:性能分裂()在SUBSTR()的
// sel = "div#main li"
if (sel.indexOf("#") > 0) {
sel = sel.split("#");
sel = "#" + sel[sel.length -1];
}
雖然我是一名JavaScript初學者,但我不是初學者的程序員。這似乎是一種壓倒性的行動,就像用大炮殺死一隻螞蟻。我會使用類似:
sel.substr(sel.indexOf("#"));
甚至不與已經使用indexof()
if語句封閉。所以,當作者甚至寫了一本關於JavaScript的書時,我一定有一些祕密我不知道:使用前代碼有什麼好處?在表現可能?
如果'split()'的開銷小於你的建議,我會被震撼。可悲的是,那裏有很多糟糕的JavaScript書籍和教程。 (當然,我對你的教程一無所知,所以這可能只是一個異常,或者是某些貨物崇拜的「傳統」的結果。) – Pointy 2012-01-10 13:36:49
哦另外:你可以使用[this website](http:// jsperf .com)進行一些簡單的比較性能測試。 – Pointy 2012-01-10 13:37:40
繼續並在您想要使用它的特定頁面上分析兩種方式。沒有一個適用於所有情況的硬性規定。 – Piskvor 2012-01-10 13:39:21