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
如您所见,a
和 A
被视为不同的值。
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'.';
您可以使用 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 中,您可以使用转义字符来插入难以或无法直接在字符串中表示的字符。
您可以使用反斜杠转义字符 \
在字符串中包含特殊字符。例如,
// 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 提供了多种创建多行字符串的技术。它们可大致分为两类
- 代码中为多行,输出中不是。
- 代码和输出中均为多行。
让我们更详细地探讨它们
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.
另请阅读