字符串拼接性能比较

34 篇文章 1 订阅

话不多说直接上代码看一下拼接方法差异

let arr = [];
//数组有若干字符串
for(let i=0;i<100000;i++){
	arr.push(i+'A');
}

//性能计算原理
//主要看同样遍历次数下时间消耗对比
function add1(){
	let str = null;
	let start_time = new Date().getTime();
	for(let i = 0,len = arr.length;i<len;i++){
		str += arr[i];				//使用+=拼接
	}
	let end_time = new Date().getTime();
	console.log('add1',(end_time - start_time).toString());
}


function add2(){
	let str = null;
	let start_time = new Date().getTime();
	for(let i = 0,len = arr.length;i<len;i++){
		str = str + arr[i];			//常规+拼接
	}
	let end_time = new Date().getTime();
	console.log('add2',(end_time - start_time).toString());
}

function add3(){
	let str = null;
	let start_time = new Date().getTime();
	for(let i = 0,len = arr.length;i<len;i++){
		str = `${str}${arr[i]}`;	//ES6字符串模板方法
	}
	let end_time = new Date().getTime();
	console.log('add3',(end_time - start_time).toString());
}

add1();
add2();
add3();

多次执行结果如下图所示:


在大量字符串拼接情况下显而易见的

+ > ES6模板语法 > +=

其中 + 运算符与ES6模板方法性能差别不大,

在少量字符串情况下三者几乎没有性能差异,只有到数据量较大时才会凸显出差异

所以通常情况下用哪个全凭个人喜好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值