String 字符串

js/string2026-10-29 11:03:47

String 类型 表示文本数据。字符串中的每个元素在字符串中占据一个位置。第一个元素的索引为 0,下一个是索引 1,依此类推。字符串的长度是它的元素的数量。

JavaScript 字符串是 不可变的。这意味着一旦字符串被创建,就不可能修改它。字符串操作都是基于当前字符串的内容创建一个新的字符串。

字符串编码

String 类型编码为 UTF-16 码元的 16 位无符号整数值序列。

字符串的长度是其中的 UTF-16 代码单元的数量,这可能与 Unicode 字符的实际数量不符。

创建字符串

字符串可以通过字符串字面量创建为字符串原始值:

const string1 = "A string primitive";
const string2 = 'Also a string primitive';
const string3 = `Yet another string primitive`;

参见字面量、模版字面量。

字符串拼接

使用 + 运算符拼接字符串。

const str1 = "Hello";
const str2 = "World";
const result = str1 + " " + str2; // "Hello World"

比较字符串

比较字符串时都区分大小写。

使用小于和大于运算符来比较字符串:

"a" < "b";
// true

使用相等比较运算符:

"a" === "b"
// false
"a" == "b"
// false

字符串对象

可以通过 String() 构造函数创建为字符串对象:

const string4 = new String("A String object");

注意区分字符串对象和原始字符串值(Boolean 和 Number 也是如此):字符串字面量(使用单引号或者双引号表示)和从非构造函数上下文中的 String 调用返回的字符串(即在不使用 new 关键字的情况下调用)是原始字符串。在需要调用原始字符串的方法或进行属性查找的上下文中,JavaScript 将自动包装原始字符串并在包装对象上调用方法或执行属性查找。

const strPrim = "foo"; // 字面量是一个字符串原始值
const strPrim2 = String(1); // 被强制转换为字符串原始值“1”
const strPrim3 = String(true); // 被强制转换为字符串原始值“true”
const strObj = new String(strPrim); // 使用 `new` 关键字调用 `String` 构造函数返回一个字符串包装对象。

String 对象始终可以使用 valueOf() 方法将其转换为对应的原始值。

相关条目

关于字符串相关方法,参见 String 对象。

参考

String 对象
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String

JavaScript 数据类型和数据结构
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures

模板字符串
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals

本页目录