Home Web Front-end JS Tutorial Detailed explanation of string concatenation in javascript_javascript skills

Detailed explanation of string concatenation in javascript_javascript skills

May 16, 2016 pm 04:35 PM
javascript String concatenation

Recently, while studying "Javascript Advanced Programming", there was a description of the characteristics of strings. The original text is roughly as follows: Strings in ECMAScript are immutable, that is to say, once strings are created, their values ​​​​are cannot be changed. To change the string stored in a variable, first destroy the original string and then fill the variable with another string containing the new value, for example:

Copy code The code is as follows:

var lang = "Java";
lang = lang "Script";

The process of implementing this operation is as follows: first create a new string that can hold 10 characters, then fill this string with "Java" and "Script", and the last step is to destroy the original string "Java" and "Script", because these two strings are no longer useful. However, in lower version browsers (such as IE6), string concatenation speed is a very performance-consuming process.

This reminds me of Java. The string mechanism in Java is similar to js (that is, it cannot be changed once it is created, and the original value can only be destroyed if you want to change it). However, Java has a StringBuffer to solve the problem of string inability. The problem is that there is no similar method in js. But we can simulate this buffering mechanism. The principle is to use arrays for splicing. The source code is as follows:

Copy code The code is as follows:

function StringBuffer() {
This.__strings__ = new Array();
}
StringBuffer.prototype.append = function (str) {
This.__strings__.push(str);
Return this; //Convenient chain operation
}
StringBuffer.prototype.toString = function () {
Return this.__strings__.join("");
}

/*Test*/
var buffer = new StringBuffer();
buffer.append("Hello ").append("javascript");

var result = buffer.toString();
alert(result);

ps: The gist address is as follows: https://gist.github.com/hehongwei44/fe71f10e4d2d9295aeab

We have simulated the mechanism, but how different is the performance of this method from string splicing? We can test it. The test code is as follows:

Copy code The code is as follows:

var d1 = new Date();
var str = "";
for(var i = 0; i < 10000; i ){
str = "text ";
}
var d2 = new Date();
document.write("Test one cost: " (d2.getTime() - d1.getTime())/1000 "seconds" "
");

var oBuffer = new StringBuffer();
d3 = new Date();
for(var i = 0; i < 10000; i ){
oBuffer.append("text ");
}
var sResult = oBuffer.toString();
d4 = new Date();
document.write("Test 2 cost: " (d4.getTime() - d3.getTime())/1000 "seconds");

The test results are as follows: (The test results may be different depending on the environment):

1. Based on a comparison of 1000 times, the two executions are very fast (basically a few milliseconds) and the time consumption is similar. The difference between the latter and the former will not exceed 10 milliseconds.
2. With 10,000 times as the base, the execution results are similar to the above, but the former has more call charges under IE6.
3. Taking 100,000 times as the base, string splicing obviously takes more time under IE6. Other browsers are not much different, and some are shorter than StringBuffer.

Conclusion

1. When the number of spliced ​​words is less than 1,000 times, boldly use the former. Generally, we rarely encounter situations where the number of spliced ​​words is thousands.
2. Other browsers have no performance problems with splicing, mainly IE6. If the number of splicings is tens of thousands or hundreds of thousands, it is recommended to use StringBuffer simulation for IE6 alone.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to implement an online speech recognition system using WebSocket and JavaScript How to implement an online speech recognition system using WebSocket and JavaScript Dec 17, 2023 pm 02:54 PM

How to use WebSocket and JavaScript to implement an online speech recognition system Introduction: With the continuous development of technology, speech recognition technology has become an important part of the field of artificial intelligence. The online speech recognition system based on WebSocket and JavaScript has the characteristics of low latency, real-time and cross-platform, and has become a widely used solution. This article will introduce how to use WebSocket and JavaScript to implement an online speech recognition system.

WebSocket and JavaScript: key technologies for implementing real-time monitoring systems WebSocket and JavaScript: key technologies for implementing real-time monitoring systems Dec 17, 2023 pm 05:30 PM

WebSocket and JavaScript: Key technologies for realizing real-time monitoring systems Introduction: With the rapid development of Internet technology, real-time monitoring systems have been widely used in various fields. One of the key technologies to achieve real-time monitoring is the combination of WebSocket and JavaScript. This article will introduce the application of WebSocket and JavaScript in real-time monitoring systems, give code examples, and explain their implementation principles in detail. 1. WebSocket technology

How to use JavaScript and WebSocket to implement a real-time online ordering system How to use JavaScript and WebSocket to implement a real-time online ordering system Dec 17, 2023 pm 12:09 PM

Introduction to how to use JavaScript and WebSocket to implement a real-time online ordering system: With the popularity of the Internet and the advancement of technology, more and more restaurants have begun to provide online ordering services. In order to implement a real-time online ordering system, we can use JavaScript and WebSocket technology. WebSocket is a full-duplex communication protocol based on the TCP protocol, which can realize real-time two-way communication between the client and the server. In the real-time online ordering system, when the user selects dishes and places an order

How to implement an online reservation system using WebSocket and JavaScript How to implement an online reservation system using WebSocket and JavaScript Dec 17, 2023 am 09:39 AM

How to use WebSocket and JavaScript to implement an online reservation system. In today's digital era, more and more businesses and services need to provide online reservation functions. It is crucial to implement an efficient and real-time online reservation system. This article will introduce how to use WebSocket and JavaScript to implement an online reservation system, and provide specific code examples. 1. What is WebSocket? WebSocket is a full-duplex method on a single TCP connection.

JavaScript and WebSocket: Building an efficient real-time weather forecasting system JavaScript and WebSocket: Building an efficient real-time weather forecasting system Dec 17, 2023 pm 05:13 PM

JavaScript and WebSocket: Building an efficient real-time weather forecast system Introduction: Today, the accuracy of weather forecasts is of great significance to daily life and decision-making. As technology develops, we can provide more accurate and reliable weather forecasts by obtaining weather data in real time. In this article, we will learn how to use JavaScript and WebSocket technology to build an efficient real-time weather forecast system. This article will demonstrate the implementation process through specific code examples. We

Simple JavaScript Tutorial: How to Get HTTP Status Code Simple JavaScript Tutorial: How to Get HTTP Status Code Jan 05, 2024 pm 06:08 PM

JavaScript tutorial: How to get HTTP status code, specific code examples are required. Preface: In web development, data interaction with the server is often involved. When communicating with the server, we often need to obtain the returned HTTP status code to determine whether the operation is successful, and perform corresponding processing based on different status codes. This article will teach you how to use JavaScript to obtain HTTP status codes and provide some practical code examples. Using XMLHttpRequest

How to use insertBefore in javascript How to use insertBefore in javascript Nov 24, 2023 am 11:56 AM

Usage: In JavaScript, the insertBefore() method is used to insert a new node in the DOM tree. This method requires two parameters: the new node to be inserted and the reference node (that is, the node where the new node will be inserted).

How to use while loop statement to implement string splicing in PHP How to use while loop statement to implement string splicing in PHP Mar 07, 2024 pm 02:15 PM

Title: Using while loops to implement string splicing in PHP In the PHP language, using while loop statements to implement string splicing is a common operation. Loop through an array, list, or other data source, concatenating each element or value into a string. This method is useful when dealing with large amounts of data or when strings need to be generated dynamically. Let's look at some specific code examples below. First, we prepare an array as the data source, and then use a while loop to implement string splicing

See all articles