Techno Blender
Digitally Yours.

How are characters stored in JavaScript ?

0 45


Improve Article

Save Article

Like Article

Improve Article

Save Article

Like Article

In many languages like C, C++, Java, etc. char is a primitive data type but in JavaScript, there is no special data type to store characters. Internally JavaScript stores characters as String only. In JavaScript, a String of length only is considered a character. Since a character is also a string so character also gets stored in a string constant pool.

The string constant pool is a small cache that resides within the heap. JavaScript stores all the values inside the string constant pool on direct allocation. The string constant pool exists mainly to reduce memory usage and improve the reuse of existing instances in memory.

Let us now understand with a basic example, how characters are stored in memory.

Example 1: In this example, we will store characters in variables.

Javascript

var char1 = 'a';

var char2 = 'a';

var char3 = 'b';

  

console.log(typeof(char1));

console.log(char1 == char2);

console.log(char1 == char3);

Output: Here, we can see that internally all the characters are being stored as String and strings with the same value refer to the same location in the memory to reduce memory usage.

string
true
false

Example 2: In this example, we will store characters with the same value but at different memory locations.

Javascript

var char1 = new String('a');

var char2 = new String('a');

var char3 = 'a';

  

console.log(typeof(char1));

console.log(char1 == char2);

console.log(char1 == char3);

Output: We can observe, that now the character is being stored as an object and each new instance of an object is allocated a new location in the memory even though it contains the same value.

object
false
true

Conclusion:

When we are storing characters using just quotation(”) marks then variables having the same value are stored at same location in the String Constant Pool but if we use new keyword then distinct memory location is assigned to each value even if they have the same value

Like Article

Save Article


Improve Article

Save Article

Like Article

Improve Article

Save Article

Like Article

In many languages like C, C++, Java, etc. char is a primitive data type but in JavaScript, there is no special data type to store characters. Internally JavaScript stores characters as String only. In JavaScript, a String of length only is considered a character. Since a character is also a string so character also gets stored in a string constant pool.

The string constant pool is a small cache that resides within the heap. JavaScript stores all the values inside the string constant pool on direct allocation. The string constant pool exists mainly to reduce memory usage and improve the reuse of existing instances in memory.

Let us now understand with a basic example, how characters are stored in memory.

Example 1: In this example, we will store characters in variables.

Javascript

var char1 = 'a';

var char2 = 'a';

var char3 = 'b';

  

console.log(typeof(char1));

console.log(char1 == char2);

console.log(char1 == char3);

Output: Here, we can see that internally all the characters are being stored as String and strings with the same value refer to the same location in the memory to reduce memory usage.

string
true
false

Example 2: In this example, we will store characters with the same value but at different memory locations.

Javascript

var char1 = new String('a');

var char2 = new String('a');

var char3 = 'a';

  

console.log(typeof(char1));

console.log(char1 == char2);

console.log(char1 == char3);

Output: We can observe, that now the character is being stored as an object and each new instance of an object is allocated a new location in the memory even though it contains the same value.

object
false
true

Conclusion:

When we are storing characters using just quotation(”) marks then variables having the same value are stored at same location in the String Constant Pool but if we use new keyword then distinct memory location is assigned to each value even if they have the same value

Like Article

Save Article

FOLLOW US ON GOOGLE NEWS

Read original article here

Denial of responsibility! Techno Blender is an automatic aggregator of the all world’s media. In each content, the hyperlink to the primary source is specified. All trademarks belong to their rightful owners, all materials to their authors. If you are the owner of the content and do not want us to publish your materials, please contact us by email – [email protected]. The content will be deleted within 24 hours.
Leave a comment