JavaScript代碼中 變量是弱類型的 可以直接用+ 號(hào)拼接起來(lái) eg: var string='sub';var i=1;var Sum=string+i;document.write(Sum); // 輸出的Sum 就是 sub1 原理:當(dāng)String 和int 相加時(shí) 系統(tǒng)自動(dòng)將int轉(zhuǎn)換為String
創(chuàng)新互聯(lián) - 德陽(yáng)機(jī)房托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽(yáng)服務(wù)器托管,德陽(yáng)服務(wù)器托管,遂寧服務(wù)器托管,綿陽(yáng)服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),德陽(yáng)機(jī)房托管,西南服務(wù)器托管,四川/成都大帶寬,機(jī)柜大帶寬,四川老牌IDC服務(wù)商
我們可以使用”+”來(lái)拼接字符串,而對(duì)于操作頻繁、講究效率的字符串拼接操作我們應(yīng)該選擇StringBuilder類。在JavaScript中是否也存在這個(gè)問(wèn)題呢?答案是肯定的,雖然JavaScript并沒(méi)有為我們提供一個(gè)內(nèi)置的StringBuilder對(duì)象,但是我們可以自己來(lái)創(chuàng)建一個(gè)!至于效率到底能提高多少,讓程序說(shuō)話吧!
//---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)的測(cè)試結(jié)果:
StringBuilder用時(shí):32
+鏈接用時(shí):1109
哇哦,30多倍,我沒(méi)看錯(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中字符串的拼接使用的是+號(hào)連接操作符,另外操作字符串的方法有
字符串其他的調(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(); //全文大寫(xiě)
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”]分割成子串
合理使用這些方法可以提高操作效率
1.對(duì)NEWS,NEWS[i]使用局部變量是高效的:
var newsElem =NEWS[i]。NEWS[i].LINK - newsElem.LINK NEWS[i].TITLE - newsElem.TITLE
2.同理,對(duì)于NEWS.length也應(yīng)該做緩存, for (var i=0, len= NEWS.length; len i; i++) //小于符號(hào)會(huì)被知乎吃掉,反過(guò)來(lái)寫(xiě)的大于
3.使用join代替字符串拼接這個(gè)技巧對(duì)于IE6、7有顯著性能提升,同時(shí)對(duì)現(xiàn)代瀏覽器,沒(méi)有太過(guò)明顯的性能損耗,鑒于目前IE6、7市場(chǎng)占有率并不低,且它們的JS引擎執(zhí)行性能低下,垃圾回策略收策略弱智,這個(gè)優(yōu)化是劃算的。
JavaScript拼接字符串有兩種方法:
①用“+=”運(yùn)算符:
var?str?=?"123";?
str+=?"456";?
var?result?=?"";?
for(var?i=0;?i,10;?i++)?result?+=?str;
這樣str在第二步的時(shí)候連接成為123456,result就會(huì)在每次循環(huán)的時(shí)候連接一遍"123456"。
②使用數(shù)組:
在循環(huán)拼接的時(shí)候不是相接拼接到某個(gè)字符串里去,而是把字符串放到一個(gè)數(shù)組里,最后用數(shù)組.join("") 得到結(jié)果字符串:
var?str?=?"123";
str+=?"456";
var?result?=?"",?a?=?new?Array();
for(var?i=0;?i10;?i++)?a[i]?=?str;
result?=?a.join("");?a?=?null;
script type="text/javascript"
function redirect(action)
{
window.location.href="result.asp?action=" + action;
} }
/script
下面這是用button調(diào)用redirect函數(shù)并將值list傳過(guò)去:
input type="button" name="list" value="全部影片" onclick="redirect('list')"/
標(biāo)題名稱:javascript拼接字符串,js html字符串拼接
文章路徑:http://www.rwnh.cn/article12/dssdsdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、企業(yè)建站、移動(dòng)網(wǎng)站建設(shè)、微信小程序、外貿(mào)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)