JavaScript 字符串

JavaScript 中的字符串是一种原始 数据类型,用于表示文本数据。例如,

let name = "John";

创建 JavaScript 字符串

在 JavaScript 中,我们通过在字符串两边加上引号或反引号来创建字符串。

单引号 'Hello'
双引号 "Hello"
反引号 `Hello`

单引号和双引号在实际使用中是相同的,你可以使用其中任何一种。

反引号通常用于需要在字符串中插入变量或表达式时。这是通过将变量或表达式用 ${variable or expression} 包裹起来实现的。例如,

// strings example
let name1 = 'Peter';
let name2 = "Jack";
let result = `The names are ${name1} and ${name2}`;

console.log(result);

// Output: The names are Peter and Jack

注意: 在 JavaScript 中,用反引号 ` ` 包裹的字符串称为 模板字面量


访问字符串字符

您可以通过以下两种方式访问字符串中的字符

1. 使用索引

一种方法是将字符串视为数组,并访问指定索引处的字符。例如,

let message = "hello";

// use index 1 to access
// 2nd character of message
console.log(message[1]);  // e

在这里,代码 message[1] 提供了 message 字符串索引为 1 处的字符,即它的第二个字符。

2. 使用 charAt() 方法

另一种方法是将字符的位置传递给 charAt() 方法。例如,

let message = "hello";

// use charAt(1) to get the
// 2nd character of message
console.log(message.charAt(1));  // e

在这里,代码 message.charAt(1) 提供了 message 字符串索引为 1 处的字符。


JavaScript 字符串的特性

JavaScript 字符串有一些有趣的特性。这些特性中最重要的有

1. JavaScript 字符串是不可变的

在 JavaScript 中,字符串的字符是无法更改的。例如,

let message = "hello";
message[0] = "H";
console.log(message);  // hello

在上面的例子中,我们尝试使用代码更改 message 的第一个字符

message[0] = "H";

然而,由于 JavaScript 字符串的不可变性,此操作失败了。

话虽如此,您仍然可以成功地为字符串变量赋一个新值。例如,

let message = "hello";
message = "Hello";
console.log(message);  // Hello

2. JavaScript 字符串区分大小写

在 JavaScript 中,小写字母和大写字母被视为不同的值。例如,

let value1 = "a";
let value2 = "A"
console.log(value1 == value2);  // false

如您所见,aA 被视为不同的值。


JavaScript 字符串方法

方法 描述
charAt() 返回指定索引处的字符。
concat() 连接两个或多个字符串。
replace() 用另一个字符串替换字符串。
split() 将字符串转换为字符串数组。
substr() 通过获取子字符串的起始位置和长度来返回字符串的一部分。
substring() 从指定的开始索引(包含)到结束索引(不包含)返回字符串的一部分。
slice() 从指定的开始索引(包含)到结束索引(不包含)返回字符串的一部分。
toLowerCase() 以小写形式返回传递的字符串。
toUpperCase() 以大写形式返回传递的字符串。
trim() 从字符串中删除空格。
includes() 搜索字符串并返回布尔值。
search() 搜索字符串并返回匹配项的位置。

要了解更多信息,请访问 JavaScript String 方法


示例:JavaScript 字符串方法

let text1 = "hello";
let text2 = "world";
let text3 = "     JavaScript    ";

// concatenate two strings let result1 = text1.concat(' ', text2);
console.log(result1); // hello world
// convert the text to uppercase let result2 = text1.toUpperCase();
console.log(result2); // HELLO
// remove whitespace from the string let result3 = text3.trim();
console.log(result3); // JavaScript
// convert the string to an array let result4 = text1.split();
console.log(result4); // [ 'hello' ]
// slice the string let result5= text1.slice(1, 3);
console.log(result5); // el

输出

hello world
HELLO
JavaScript
[ 'hello' ]
el

更多关于 JavaScript 字符串

获取字符串长度

要查找字符串的长度,您可以使用内置的 length 属性。例如,

let message = "hello";
console.log(message.length); 

// Output: 5
在另一个引号内插入引号。

您可以在另一个引号内写一个引号。但是,该引号不应与周围的引号匹配。例如,

// valid
let message = 'My name is "Peter".';

// invalid
let message = 'My name is 'Peter'.';
JavaScript 字符串对象

您可以使用 new 关键字创建字符串 对象。例如,

let value1 = "hello";
let value2 = new String("hello");

console.log(value1);  // hello
console.log(value2);  // [String: 'hello']

console.log(typeof(value1));  // string
console.log(typeof(value2));  // object

注意:我们建议您避免使用字符串对象,因为它们会减慢程序运行速度。

转换为字符串

我们使用 String() 函数将各种数据类型转换为字符串。例如,

let value1 = 225;  // number
let value2 = true;  // boolean

//convert to string
let result1 = String(value1);
let result2 = String(value2);

console.log(result1);  // 225
console.log(result2);  // true

要了解更多关于字符串转换的信息,请访问 JavaScript 类型转换

JavaScript 转义字符

在 JavaScript 中,您可以使用转义字符来插入难以或无法直接在字符串中表示的字符。

您可以使用反斜杠转义字符 \ 在字符串中包含特殊字符。例如,

// insert double quotes inside string
let name = "My name is \"Peter\".";
console.log(name);

输出

My name is "Peter".

在上面的程序中,每个 \" 在字符串中插入一个双引号,而不会引起语法错误。

以下是您可以使用转义字符 \ 的其他方式

代码 字符
\" 双引号
\\ 反斜杠
\n 新行
\r 回车符
\v 垂直制表符
\t 水平制表符
\b 退格符
\f 换页符
JavaScript 多行字符串

JavaScript 提供了多种创建多行字符串的技术。它们可大致分为两类

  1. 代码中为多行,输出中不是。
  2. 代码和输出中均为多行。

让我们更详细地探讨它们

1. 代码中为多行,输出中不是。

将长字符串分成多行可以使您的代码看起来更整洁。您可以使用 +\ 运算符来实现这一点。

但是,这些多行字符串将在输出中表示为单行。例如,

// use the + operator
let message1 = "This is a long message " +
    "that spans across multiple lines " + 
    "in the code.";

// use the \ operator
let message2 = "This is a long message \
that spans across multiple lines \
in the code.";

console.log(message1);
console.log(message2);

输出

This is a long message that spans across multiple lines in the code.
This is a long message that spans across multiple lines in the code.

2. 代码和输出中均为多行。

使用以下任何一种方法,可以使用单个字符串变量打印多行

  • 模板字面量 ` `
  • 换行转义字符 \n

例如,

// use template literal
let message1 = `This is a long message
that spans across multiple lines
in the code.`;

// use escape character \n
// each \n inserts a new line into the string
let message2 = "This is a long message\nthat spans across multiple lines\nin the code.";

console.log(message1);

// print an empty line
console.log();

console.log(message2);

输出

This is a long message
that spans across multiple lines
in the code.

This is a long message
that spans across multiple lines
in the code.

另请阅读

在结束之前,让我们来测试一下您对 JavaScript 字符串的了解!您能解决以下挑战吗?

挑战

编写一个连接两个字符串的函数。

  • 给定两个输入字符串(str1str2),返回连接后的字符串。
  • 例如,如果 str1 = "Hello, " 并且 str2 = "World!",则预期输出为 "Hello, World!"
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战