[Javascript] String in Javascript

String in Javascript is immutable. Means that once they were created, they cannot be modified.

This also means that simple operations like appending a character to a string are more expensive than they might appear.

 

The canonical example of an operation that's decptively expensive due to string immutability is the following:

const string = "this is string"
let newString = ""

for char in string
    newString += char

 

The operation above has a time complexity of O(n2) where n is the length of string, because each addition of a character to `newString` creates an entirely new string and is itself an O(n) operation. 

Therefore, n * O(n) operations are performed, leading to an O(n2) time-complexity operation overall.

 

So when doing appending string in Javascript, one performance improvement suggestion would be split string into Array.

Appending one item into array is O(1) time-complexity, after appending, can join the array together into a new string

const string = "this is string"
const ary = string.split("")
ary.push('!');
const newString = ary.join('')

 

posted @ 2022-07-13 01:16  Zhentiw  阅读(50)  评论(0编辑  收藏  举报