十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
JavaScript代码中 变量是弱类型的 可以直接用+ 号拼接起来 eg: var string='sub';var i=1;var Sum=string+i;document.write(Sum); // 输出的Sum 就是 sub1 原理:当String 和int 相加时 系统自动将int转换为String
创新互联 - 德阳机房托管,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,德阳机房托管,西南服务器托管,四川/成都大带宽,机柜大带宽,四川老牌IDC服务商
我们可以使用”+”来拼接字符串,而对于操作频繁、讲究效率的字符串拼接操作我们应该选择StringBuilder类。在JavaScript中是否也存在这个问题呢?答案是肯定的,虽然JavaScript并没有为我们提供一个内置的StringBuilder对象,但是我们可以自己来创建一个!至于效率到底能提高多少,让程序说话吧!
//---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用时:" + (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("+链接用时:" + (d4.getTime() - d3.getTime()) + "br/");
在我的机器上(Core2 3.0G/4GRAM),反复F5后得到一个,比较平稳的测试结果:
StringBuilder用时:32
+链接用时:1109
哇哦,30多倍,我没看错吧!
好了,赶紧自己做好一个Lib,以后都用这个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中字符串的拼接使用的是+号连接操作符,另外操作字符串的方法有
字符串其他的调用方法:
s.charAt(0); //第一个字符:“H”
s.charAt(s.length-1); //最后一个字符串“d”
s.substring(1,4); //第2~4个字符串注意不是第2~5个字符串 “ell”;
s.slice(1,4); // 同上 “ell”;
s.replace("H","h"); //“h”替换“H”,全文字符替换,
s.toUpperCase(); //全文大写
s.slice(-3); //最后三个字符“rld”;
s.indexOf("l"); //字符l首次出现的位置; “2”
s.lastIndexOf("l"); //字符l最后出现的位置; “10”
s.indexOf("l",3); //在位置33及之后首次出现字符串了的位置 “3”
s.split(", "); //[“hello”,“world”]分割成子串
合理使用这些方法可以提高操作效率
1.对NEWS,NEWS[i]使用局部变量是高效的:
var newsElem =NEWS[i]。NEWS[i].LINK - newsElem.LINK NEWS[i].TITLE - newsElem.TITLE
2.同理,对于NEWS.length也应该做缓存, for (var i=0, len= NEWS.length; len i; i++) //小于符号会被知乎吃掉,反过来写的大于
3.使用join代替字符串拼接这个技巧对于IE6、7有显著性能提升,同时对现代浏览器,没有太过明显的性能损耗,鉴于目前IE6、7市场占有率并不低,且它们的JS引擎执行性能低下,垃圾回策略收策略弱智,这个优化是划算的。
JavaScript拼接字符串有两种方法:
①用“+=”运算符:
var str = "123";
str+= "456";
var result = "";
for(var i=0; i,10; i++) result += str;
这样str在第二步的时候连接成为123456,result就会在每次循环的时候连接一遍"123456"。
②使用数组:
在循环拼接的时候不是相接拼接到某个字符串里去,而是把字符串放到一个数组里,最后用数组.join("") 得到结果字符串:
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调用redirect函数并将值list传过去:
input type="button" name="list" value="全部影片" onclick="redirect('list')"/