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拼接字符串的效率相关推荐

  1. js字符串如何拼接java代码_[Java教程]js拼接字符串传值,子窗口传值

    [Java教程]js拼接字符串传值,子窗口传值 0 2015-10-26 21:00:15 避免下次再去查资料,记录一下 1.拼接字符串传值 "UpdateState?ids=" ...

  2. JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍

    JS拼接字符串的过程中将JSON对象存到某个标签的属性中 JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍 案例描述 实现方法 ...

  3. js拼接字符串里面a标签带参数跳转和接收

    js拼接字符串里面a标签带参数跳转和接收 第一个页面 let details = JSON.stringify(v) let inner = ` 设备名称:<a href='../#/bkqy/ ...

  4. 高效的JS 拼接字符串

    今天在JS里面碰到循环数组里面拼接字符串,可想而知那速率肯定不高,所以就上网不断的查询资料来提高拼接的效率,然而网上的拼接方法和java里面的还是不同 一下是网上的方法: function Strin ...

  5. js拼接字符串与变量

    使用eval()方法可将拼接后的字符串与变量转变为变量 var field_test = '我是小白鼠一号'; var field_test = '我是小白鼠二号'; // 然后在JS里尝试将前面的语 ...

  6. 关于js 拼接字符串带有特殊字符的处理

    因为兼容ie的问题 不能使用模板字符串,所以对于字符串的变量拼接 还是使用的 + _var + 的形式 '<p title=" '+ item.value + ' " cla ...

  7. js 拼接字符串传参乱码问题

    页面通过拼接传参会出现乱码问题,这里做个备忘 前台用encodeURI()方法解析中文字符,再用encodeURI()解析URL 后台需要用URLDecoder.decode(name, " ...

  8. js拼接字符串时数据类型的隐式转换

    数据类型的隐式转换:字符串类型string>数值类型number>布尔类型boolean数字+字符串:数字需要转成字符串 数字+布尔值:布尔值需要转成数字(true转成1,false转成0 ...

  9. js拼接字符串时,字符串首出现undefined的问题

    转载:https://blog.csdn.net/Spotlight_mar/article/details/52718576 undefined是说明你所使用的对象未定义. 例如: var str; ...

最新文章

  1. java设置虚基类的目的_设置虚基类的目的是( )。
  2. 请问有办法加速TTS的反应时间吗
  3. linux 下mysql命令 (授权用户 和 基本操作)
  4. NKU 专题一 题解
  5. [css] 在固定宽度的div下,怎么让字体自适应大小,不超出宽度,也不要换行
  6. python连乘函数_Python常用的几种常用的内置函数
  7. 哈里王子启动可持续旅行倡议 携程作为创始成员入选
  8. mybatis直接执行sql语句后续之一
  9. 腾讯宣布捐赠1亿元驰援河南;苹果回应iPhone 安全隐患;贝索斯完成10分钟太空之旅|极客头条...
  10. mysql根据视图update表数据_怎么更新Mysql数据表视图中数据
  11. java 1.6 jdk 64_jdk 1.6 64位官方下载|Java JDK(Java SE Development Kit) 1.6 64位版 - 121下载站...
  12. 数据情报分析EXCEL篇
  13. zbbz插件使用教程_cad坐标标注插件1.73版
  14. 疯狂的上网本意义何在?
  15. RISC-V架构能否引领物联网时代?
  16. 采购订单审批与采购申请审批
  17. 手机号批量查询归属地方法及其简介批量查询号码归属地方法
  18. OpenCV图像处理--获取图像属性
  19. 消息质量平台系列文章|全链路排查篇
  20. QNX-Screen官方文档理解(Configuring Screen)

热门文章

  1. 告别PQMagic Win7硬盘维护工具ADDS
  2. 商务笔记本进入小时代
  3. Java 法师与战士
  4. php删除文件夹(临时文件)代码
  5. Java基础之Java8中map和flatMap的使用
  6. 用c语言实现银行存款程序
  7. jackson的readValue和convertValue方法
  8. frpc启动失败总结
  9. 淘宝难做,不会英语也可以做亚马逊
  10. java调用微信加密_微信登录授权, 并且解密加密内容获取手机号和地区