发布网友 发布时间:2022-04-25 17:54
共10个回答
热心网友 时间:2022-05-14 14:53
就像在C#中一样,可以使用”+”来拼接字符串,而对于操作频繁、讲究效率的字符串拼接操作应该选择StringBuilder类。在JavaScript中是否也存在这个问题呢?答案是肯定的,虽然JavaScript并没有为提供一个内置的StringBuilder对象,但是可以自己来创建一个!至于效率到底能提高多少,让程序说话吧!
//---StringBuilder---在机器上(Core2 3.0G/4GRAM),反复F5后得到一个,比较平稳的测试结果:
StringBuilder用时:32
+链接用时:1109
哇哦,30多倍,没看错吧!
好了,赶紧自己做好一个Lib,以后都用这个StringBuilder吧:
function StringBuilder(){热心网友 时间:2022-05-14 16:11
(1)新版本的浏览器对拼接字符串做了优化,如果不是要兼容比较老的浏览器比如IE6,可以不做优化
(2)优化一般从两个地方着手
a.如果是for(var i=0;i<arr.length;i++),在这里面拼接,可以在循环外边用一个变量缓存一下arr.length,把i<arr.length改成i<缓存的那个变量,这样不用每次取length.
b.把要拼接的字符串都push到一个js数组里,再用数组的join方法,以空字符串join,这样就不会有过多的字符串创建和销毁,从而提高效率.
热心网友 时间:2022-05-14 17:46
模拟JAVA的StringBuffer这种缓冲机制,其原理是利用数组进行拼接,源代码如下:
function StringBuffer() {
this.__strings__ = new Array();
}
StringBuffer.prototype.append = function (str) {
this.__strings__.push(str);
return this; //方便链式操作
}
StringBuffer.prototype.toString = function () {
return this.__strings__.join("");
}
/*测试*/
var buffer = new StringBuffer();
buffer.append("Hello ").append("javascript");
var result = buffer.toString();
alert(result);
热心网友 时间:2022-05-14 19:37
最简单的方式就是直接用+号链接,因为js是弱类型语言,不区分具体类型,直接字符串a+b+c就行,不放心的话中间可以加上"";
热心网友 时间:2022-05-14 21:45
百度的高质量提问就是一个脑残的设计,只能看到提问,不能看到问题详情,怎样获得高质量的回答????
另外,也看不到其它人的回答,如果其它人回答了,我再来回答一次,不是很浪费时间与精力?!
@百度知道 脑残设计!!!
热心网友 时间:2022-05-15 00:10
ES6 提供了新的拼接方法:利用 ` ` (数字1左边的那个键位)拼接,不用再依赖+号拼接
热心网友 时间:2022-05-15 02:51
// 用数组的join,如果是循环的话,在循环中将值push到数组
var arr = [];
arr.push("string1");
arr.push("string2");
res = arr.join('');
热心网友 时间:2022-05-15 05:49
for(var i = 0; i<10; i++){
var str += 'str'+i;
console.log(str);
}
热心网友 时间:2022-05-15 09:04
加号 "a"+"b"
热心网友 时间:2022-05-15 12:35
var hl="";
hl+="";