js中高效拼接字符串
写在前面
面试的过程,很有可能面试到c#那种方式拼接字符串更高效,然后就会引申到js中的拼接方式。这也是我在面试中遇到的问题,当时,也真没比较过js中到底哪种方式更高效。然后,跟猜测一样,说了使用数组的方式,然后使用join方法实现。
代码测试
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>字符串拼接</title>
<script type="text/javascript">
var start = new Date();
var str = "";
for (var i = 0; i < 1000000; i++) {
str += "test";
}
var end = new Date();
document.writeln("+拼接字符串,耗时:" + (end.getMilliseconds() - start.getMilliseconds()));
document.writeln("<br/>");
var begin = new Date();
var arry = new Array();
for (var i = 0; i < 1000000; i++) {
arry.push("test");
}
arry.join("");
var stop = new Date();
document.writeln("数组方式拼接字符串,耗时:" + (stop.getMilliseconds() - begin.getMilliseconds()));
</script>
</head>
<body>
</body>
</html>
测试结果
IE11
+拼接字符串,耗时:39
数组方式拼接字符串,耗时:31
IE11兼容性视图
+拼接字符串,耗时:40
数组方式拼接字符串,耗时:33
IE10
+拼接字符串,耗时:39
数组方式拼接字符串,耗时:32
IE9
+拼接字符串,耗时:36
数组方式拼接字符串,耗时:33
IE8
+拼接字符串,耗时:35
数组方式拼接字符串,耗时:35
IE7
+拼接字符串,耗时:37
数组方式拼接字符串,耗时:35
总结
在面试过程中遇到的一个知识点,在此记录一下。
js中高效拼接字符串的更多相关文章
- js 高效拼接字符串
<script>//如果我们大量使用+=进行字符串拼接的话,将会使界面失去响应(卡死状态) //高效拼接字符串 var StringBuilder=function() { this.da ...
- [转]JS中对象与字符串的互相转换
原文地址:http://www.cnblogs.com/luminji/p/3617160.html 在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: thr ...
- JS中对象与字符串的互相转换
在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON ...
- Js中常用的字符串,数组,函数扩展
由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展 ...
- js中多行字符串拼接
前言 我们会经常遇到这样的场景,需要拼接多行字符串,在字符串中动态插入一些数据以达到业务的需求.但是js中并没有标准的多行编辑的函数,于是聪明的程序员们便脑洞大开,书写出许多有趣的方法. 1 2 3 ...
- js中使用进行字符串传参
在js中拼接html标签传参时,如果方法参数是字符串需要加上引号,这里需要进行字符转义 <a href='javascript:addMenuUI("+"\"&qu ...
- 源码上看 .NET 中 StringBuilder 拼接字符串的实现
前几天写了一篇StringBuilder与TextWriter二者之间区别的文章(链接).当时提了一句没有找到相关源码,于是随后有很多热心人士给出了相关的源码链接(链接),感谢大家.这几天抽了点时间查 ...
- js中把JSON字符串转换成JSON对象最好的方法
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用j ...
- Js中把JSON字符串转换为JSON对象(eval()、new Function())
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用j ...
随机推荐
- idea中将项目与github关联
© 版权声明:本文为博主原创文章,转载请注明出处 1.在github中创建一个账号:https://github.com/join?source=header-home 2.下载并安装git:http ...
- WebService常用公共接口
Web Service 一些对外公开的网络服务接口 商业和贸易: 1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://we ...
- Groovy安装
进入Groovy的官网下载安装SDKMAN() 以下是官网的下载方法(http://www.groovy-lang.org/download.html) This tool makes install ...
- 浏览器不支持JavaScript怎么办
使用 noscript 标签,给用户提醒即可 <body> <noscript>需要js支持</noscript> </body>
- CLion 使用笔记(三)
我已经在博客里面发布了好几篇 CLion 使用笔记了,没追究这是第几篇,姑且算作第三篇. 我的 CLion 是搭配了 MSYS2 和 Conan 使用的.MSYS2 提供 C++ toolchain. ...
- Newton 插值法
定义 $f(x)$ 关于 $x_0, x_1, \dots, x_k$ 的 $k$ 阶均差(差商)记做 $ f [x_0, x_1, \dots, x_k] $,均差是递归定义的,有两种等价定义 \b ...
- BZOJ-2618 [CQOI2006]凸多边形
半平面交模版题.. #include <cstdlib> #include <cstdio> #include <cmath> #include <cstri ...
- app自动测试-微信(iOS)-web-1
appium 是一个用于app自动测试的工具.目前支持测试iOS, Android, Windows上的app.(github: https://github.com/appium/appium) 其 ...
- Flask deployment on gunicorn with flask script
https://stackoverflow.com/questions/34265870/flask-deployment-on-gunicorn-with-flask-script 依赖 Flask ...
- hdu 5669 Road
题目大意 \(n\)个点,\(m\)次连边 每次连边为\((a\sim b)\leftrightarrow (c\sim d),cost=w\) 即在\((a-b)\)区间内的点向\((c-d)\)区 ...