在js中,字符串拼接很为常见,通过我们之前的一篇文章https://www.jianshu.com/p/18db78490ef5已经大致了解到了Java中的字符串拼接方式以及效率,js中是否类似呢?下面来简单测试一下。
在日常开发中,字符串拼接通常有两种方法:
1. +号拼接
2. 将字符串循环放入数组,然后通过数组的join()方法。
具体测试代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
字符串拼接次数:<input type="text" id="count" value="1000" />
<button id="test1" onclick="f1()">通过+号来拼接字符串</button>
<button id="test2" onclick="f2()">通过数组添加字符串然后join('')</button>
<div id="result1"></div>
<div id="result2"></div>
</body>
<script type="text/javascript">
var s = 'sjahdiuahfoiahdfiahdio';
function f1(){
var result = '';
var count = document.getElementById("count").value;
var start = new Date().getTime();
for(var i = 0; i < count; i ++){
result += s;
}
var end = new Date().getTime();
document.getElementById("result1").innerHTML = "字符串长度为:" + result.length + " 使用+号拼接耗时:" + (end - start) + "毫秒";
}
function f2(){
var arr = [];
var result = '';
var count = document.getElementById("count").value;
var start = new Date().getTime();
for(var i = 0; i < count; i ++){
arr.push(s);
}
result = arr.join('');
arr = null;
var end = new Date().getTime();
document.getElementById("result2").innerHTML = "字符串长度为:" + result.length + "使用数组join拼接耗时:" + (end - start) + "毫秒";
}
</script>
</html>
结论
不同浏览器测试结果😓通过测试发现好像区别不是很大,不过据说老版本的IE使用数组方式要快的多,这个并没有测试过。
个人觉得+号更直观简单一些。
网友评论