JavaScript字符串

JavaScript 字符串用于存储和操作文本。

JavaScript 字符串用于存储和操作文本。

JavaScript 字符串是写在引号内的零个或多个字符序列。

let text = "John Doe";

您可以使用单引号或双引号:

let carName1 = "Volvo XC60";   // 使用双引号
let carName2 = 'Volvo XC60';   // 使用单引号

您可以在字符串中使用引号,只要它们与字符串周围的引号不同:

let answer1 = "It's alright";
let answer2 = "He is called 'Johnny'";
let answer3 = 'He is called "Johnny"';

字符串长度

要查看字符串的长度,请使用内置 length 属性:

let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
console.log("字符串长度:", text.length); // 输出 -> 字符串长度: 26

转义字符

当字符串中包含引号时,下面的写法引发语法错误:

let text = "字符串是一个字符的"序列"";

这时候需要使用**反斜杠转义字符 (\)**解决问题。

反斜杠转义字符 (\) 将特殊字符转换为字符串字符:

转义 转义结果 说明
\' ' 单引号
\" " 双引号
\\ \ 反斜杠

在字符串中转义双引号 \"

let text = "字符串是一个字符的\"序列\"";

在字符串中转义双引号 \'

let text = '字符串是一个字符的\'序列\'';

在字符串中插入一个反斜杠 \\

let text = "这个字符 \\ 是反斜杠。";

JavaScript 定义的六个转义字符串:

转义字符串 说明
\b 退格符
\f 换页符
\n 换行符
\r 回车符
\t 水平制表符
\v 垂直制表符

上面的 6 个转义字符最初设计用于控制打字机、电传打字机和传真机。它们在 HTML 中没有任何意义。

new String()

通常,JavaScript 字符串是从字面量创建的:

let firstName = "John";

也可以通过 new String() 创建字符串 :

let firstName = new String("John");

虽然字符串的内容是相同的,但是这两种方式创建的字符串对象也有很大的差异。

let x = "John";
let y = new String("John");

console.log("typeof x =", typeof x); // 输出 typeof x = string
console.log("typeof y =", typeof y); // 输出 typeof y = object

console.log("(x == y) =", x == y); // 输出 (x == y) = true
console.log("(x === y) =", x === y); // 输出 (x === y) = false

从上面的例子看出他们的不同:

  • 通过字面量创建的字符串的 typeof 为 string
  • 通过 new String() 创建的字符串的 typeof 为 object
  • 通过 == 比较的时候,他们是相等的
  • 通过 === 比较的时候,他们是不相等的

使用 new String() 创建字符串会让代码复杂化,降低执行效率,容易引入不易发现的问题。因此除非出于某种目的,一般我们建议不要使用 new String() 创建字符串。