JS拼接字符串的效率
JS拼接字符串的方式,
1、最常见的是+=;
2、还可以先将字符串转化为数组,然后调用Join实现字符串拼接
arr.push(str);
return arr.join("");
效率分为运行速度和内存消耗问题,网上查了相关资料,结论就是join在字符串字节很大时(百万级以上),用join会明显快于用+=实现的字符串拼接(),用+=耗时大概时10秒,用join大概是几百毫秒,当字节数很少时,两种方法耗时差距可以忽略,而且用join还需要开数组变量,耗内存,所以这时候推荐用+=;
----------运行速度-------------
博主试着跑了下,十万级别的字节数,+=耗时几乎为0,join耗时为7毫秒左右;百万级别的字节数,+=耗时在75毫秒上下波动,join耗时在68毫秒上下波动,两者差距可以忽略;千万级别的字节,两者耗时差距在200毫秒内波动,+=耗时在1000毫秒左右,join耗时在800毫秒左右波动;亿级的字节数,超过字符最大上限,报错了。
故当字节数低于百万级别的时候,推荐用+=实现字符串拼接,当字节数为千万级别的时候,如果对运行速度有要求,可以采取join实现拼接。如果对运行速度要求较高,百万级别及以上的字符串拼接推荐用join实现。
至于别的博文里面为什么百万级的字节数跑出来的效果,+=耗时10秒以上,可能是当时(5年前)的CPU性能较差造成的,现在CPU的性能已经足够完成百万级字节数的拼接,所以博主跑出来的只有1秒,快了10倍。
------------字符串内存------------
既然不同的拼接方式耗时不同,那么这中间的过程肯定是不一样的。
chrome在用+进行拼接时,生成的字符串包含(),例如a+b,生成的是(a,b),再加c,生成的是((a,b),c),改用join生成的字符串则是ab,可以节省大量内存(10倍以上的差距)
JS拼接字符串的效率相关推荐
- js字符串如何拼接java代码_[Java教程]js拼接字符串传值,子窗口传值
[Java教程]js拼接字符串传值,子窗口传值 0 2015-10-26 21:00:15 避免下次再去查资料,记录一下 1.拼接字符串传值 "UpdateState?ids=" ...
- JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍
JS拼接字符串的过程中将JSON对象存到某个标签的属性中 JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍 案例描述 实现方法 ...
- js拼接字符串里面a标签带参数跳转和接收
js拼接字符串里面a标签带参数跳转和接收 第一个页面 let details = JSON.stringify(v) let inner = ` 设备名称:<a href='../#/bkqy/ ...
- 高效的JS 拼接字符串
今天在JS里面碰到循环数组里面拼接字符串,可想而知那速率肯定不高,所以就上网不断的查询资料来提高拼接的效率,然而网上的拼接方法和java里面的还是不同 一下是网上的方法: function Strin ...
- js拼接字符串与变量
使用eval()方法可将拼接后的字符串与变量转变为变量 var field_test = '我是小白鼠一号'; var field_test = '我是小白鼠二号'; // 然后在JS里尝试将前面的语 ...
- 关于js 拼接字符串带有特殊字符的处理
因为兼容ie的问题 不能使用模板字符串,所以对于字符串的变量拼接 还是使用的 + _var + 的形式 '<p title=" '+ item.value + ' " cla ...
- js 拼接字符串传参乱码问题
页面通过拼接传参会出现乱码问题,这里做个备忘 前台用encodeURI()方法解析中文字符,再用encodeURI()解析URL 后台需要用URLDecoder.decode(name, " ...
- js拼接字符串时数据类型的隐式转换
数据类型的隐式转换:字符串类型string>数值类型number>布尔类型boolean数字+字符串:数字需要转成字符串 数字+布尔值:布尔值需要转成数字(true转成1,false转成0 ...
- js拼接字符串时,字符串首出现undefined的问题
转载:https://blog.csdn.net/Spotlight_mar/article/details/52718576 undefined是说明你所使用的对象未定义. 例如: var str; ...
最新文章
- java设置虚基类的目的_设置虚基类的目的是( )。
- 请问有办法加速TTS的反应时间吗
- linux 下mysql命令 (授权用户 和 基本操作)
- NKU 专题一 题解
- [css] 在固定宽度的div下,怎么让字体自适应大小,不超出宽度,也不要换行
- python连乘函数_Python常用的几种常用的内置函数
- 哈里王子启动可持续旅行倡议 携程作为创始成员入选
- mybatis直接执行sql语句后续之一
- 腾讯宣布捐赠1亿元驰援河南;苹果回应iPhone 安全隐患;贝索斯完成10分钟太空之旅|极客头条...
- mysql根据视图update表数据_怎么更新Mysql数据表视图中数据
- java 1.6 jdk 64_jdk 1.6 64位官方下载|Java JDK(Java SE Development Kit) 1.6 64位版 - 121下载站...
- 数据情报分析EXCEL篇
- zbbz插件使用教程_cad坐标标注插件1.73版
- 疯狂的上网本意义何在?
- RISC-V架构能否引领物联网时代?
- 采购订单审批与采购申请审批
- 手机号批量查询归属地方法及其简介批量查询号码归属地方法
- OpenCV图像处理--获取图像属性
- 消息质量平台系列文章|全链路排查篇
- QNX-Screen官方文档理解(Configuring Screen)