打個(gè)比方:
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)亭湖免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
var?arr?=?[1,2,3,4,5,6];
for(var?i?=?0;i??arr.length;i++)?{
console.log(arr[i])
}
//以上優(yōu)化就在iarr.length;循環(huán)每次都要訪問他的length屬性,不如先存起來,var?len=arr.length;
//dom相關(guān)的,id選擇器是最快的
//優(yōu)化的細(xì)節(jié)很多,講不清楚一下
我們可以使用”+”來拼接字符串,而對于操作頻繁、講究效率的字符串拼接操作我們應(yīng)該選擇StringBuilder類。在JavaScript中是否也存在這個(gè)問題呢?答案是肯定的,雖然JavaScript并沒有為我們提供一個(gè)內(nèi)置的StringBuilder對象,但是我們可以自己來創(chuàng)建一個(gè)!至于效率到底能提高多少,讓程序說話吧!
//---StringBuilder---
function StringBuilder(){
this.__string__ = new Array();
}
StringBuilder.prototype.append = function(str){
this.__string__.push(str);
}
StringBuilder.prototype.toString = function(){
return this.__string__.join("");
}
var d1 = new Date();
var buffer = new StringBuilder();
for(var i = 1; i 10000; i++){
buffer.append("E3Card");
}
var strResult = buffer.toString();
var d2 = new Date();
document.write("StringBuilder用時(shí):" + (d2.getTime() - d1.getTime()) + "br/");
//---+-----
var d3 = new Date();
var str = "";
for(var i = 1; i 10000; i++){
str += "E3Card";
}
var d4 = new Date();
document.write("+鏈接用時(shí):" + (d4.getTime() - d3.getTime()) + "br/");
在我的機(jī)器上(Core2 3.0G/4GRAM),反復(fù)F5后得到一個(gè),比較平穩(wěn)的測試結(jié)果:
StringBuilder用時(shí):32
+鏈接用時(shí):1109
哇哦,30多倍,我沒看錯(cuò)吧!
好了,趕緊自己做好一個(gè)Lib,以后都用這個(gè)StringBuilder吧:
function StringBuilder(){
this.__string__ = new Array();
}
StringBuilder.prototype.append = function(str){
this.__string__.push(str);
}
StringBuilder.prototype.toString = function(){
return this.__string__.join("");
}
javascript中字符串的拼接使用的是+號連接操作符,另外操作字符串的方法有
字符串其他的調(diào)用方法:
s.charAt(0); //第一個(gè)字符:“H”
s.charAt(s.length-1); //最后一個(gè)字符串“d”
s.substring(1,4); //第2~4個(gè)字符串注意不是第2~5個(gè)字符串 “ell”;
s.slice(1,4); // 同上 “ell”;
s.replace("H","h"); //“h”替換“H”,全文字符替換,
s.toUpperCase(); //全文大寫
s.slice(-3); //最后三個(gè)字符“rld”;
s.indexOf("l"); //字符l首次出現(xiàn)的位置; “2”
s.lastIndexOf("l"); //字符l最后出現(xiàn)的位置; “10”
s.indexOf("l",3); //在位置33及之后首次出現(xiàn)字符串了的位置 “3”
s.split(", "); //[“hello”,“world”]分割成子串
合理使用這些方法可以提高操作效率