JavaScript 字符是如何存储的

JavaScript 字符是如何存储的

在许多像C、C++、Java等语言中,char是一种原始数据类型,但在 JavaScript 中,没有特殊的数据类型来存储字符。JavaScript在内部仅将字符存储为 字符串 。在JavaScript中,只有长度为1的字符串被视为字符。由于字符也是字符串,所以字符也会存储在字符串常量池中。

字符串常量池是一个位于堆内的小缓存。JavaScript通过直接分配将所有值存储在字符串常量池中。字符串常量池主要存在于减少内存使用和改善现有实例在内存中的重用。

现在让我们用一个基本的例子来了解字符是如何存储在内存中的。

例子1: 在这个例子中,我们将字符存储在变量中。

Javascript

var char1 = 'a'; 
var char2 = 'a'; 
var char3 = 'b'; 
  
console.log(typeof(char1)); 
console.log(char1 == char2); 
console.log(char1 == char3);
JavaScript

输出: 在这里,我们可以看到,所有的字符都以字符串的形式内部存储,并且具有相同值的字符串在内存中引用相同的位置,以减少内存使用。

string
true
false
JavaScript

例子2: 在这个例子中,我们将把具有相同值但存储在不同内存位置的字符存储起来。

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);
JavaScript

输出: 我们可以观察到,现在字符被存储为一个对象,每个对象的新实例都被分配一个新的内存位置,即使它们包含相同的值。

object
false
true
JavaScript

结论:

当我们使用引号(””)来存储字符时,具有相同值的变量被存储在字符串常量池的相同位置,但如果我们使用new关键字,即使它们具有相同的值,每个值都被分配到不同的内存位置

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册