JavaScript:利用StringBuffer类提升+=拼接字符串效率

简介: 1DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 3 4 5 6 7 8 9495051
1 <! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "  " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
 2 < html xmlns = " http://www.w3.org/1999/xhtml " >
 3 < head >
 4 < meta http - equiv = " Content-Type "  content = " text/html; charset=utf-8 "  / >
 5 < title >< / title>
 6 < / head>
 7 < body >
 8 < / body>
 9 < script type = " text/javascript " ><!--
10      var  str  =  ' hello ' ;
11     str  +=  ' world ' ;
12      // 每次完成字符串连接都会执行步骤2到6步
13      // 实际上,这段代码在幕后执行的步骤如下:
14 img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif      /*
15        1.创建存储'hello'的字符串
16        2.创建存储'world'的字符串
17        3.创建存储链接结果的字符串
18        4.把str的当前内容复制到结果中
19        5.把'world'复制到结果中
20        6.更新str,使它指向结果
21    */
    
22     
23      // 为了提高性能最好使用数组方法拼接字符串
24      // 创建一个StringBuffer类
25 img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif      function  StringBuffer() {
26        this.__strings__ = [];
27    }
;    
28 img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif    StringBuffer.prototype.append  =  function (str) {
29        this.__strings__.push(str);
30    }
;
31 img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif    StringBuffer.prototype.toString  =  function () {
32        return this.__strings__.join('');
33    }
;
34     
35      // 调用StringBuffer类,实现拼接字符串
36      // 每次完成字符串连接都会执行步骤2步
37      // 实际上,这段代码在幕后执行的步骤如下:
38 img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif      /*
39        1.创建存储结果的字符串
40        2.把每个字符串复制到结果中的合适位置
41    */

42      var  buffer  =  new  StringBuffer();
43     buffer.append( ' hello  ' );
44     buffer.append( ' world ' );
45      var  result  =  buffer.toString();
46     
47      // 用StringBuffer类比使用+=节省50%~66%的时间
48 // -->
49 < / script>
50 < / html>
51
目录
相关文章
|
21天前
|
存储 C++ 容器
C++入门指南:string类文档详细解析(非常经典,建议收藏)
C++入门指南:string类文档详细解析(非常经典,建议收藏)
31 0
|
26天前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
21 2
|
8天前
|
JavaScript 前端开发 索引
JavaScript中与字符串相关的方法
JavaScript中与字符串相关的方法
存储 编译器 Linux
15 0
|
1天前
|
编译器 C++
标准库中的string类(上)——“C++”
标准库中的string类(上)——“C++”
|
8天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`&#39;1.2,2,3,4,5&#39;`)转换为对象数组。通过使用`split(&#39;,&#39;)`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
11天前
|
JavaScript
JS去除字符串的方法
JS去除字符串的方法
|
12天前
|
XML 编解码 数据格式
Python标准数据类型-String(字符串)
Python标准数据类型-String(字符串)
23 2
|
12天前
|
存储 算法 C语言
【C++初阶】8. STL初阶 + String类
【C++初阶】8. STL初阶 + String类
47 1
|
12天前
|
C语言 C++
【C++初阶】9. string类的模拟实现
【C++初阶】9. string类的模拟实现
36 1