字符串

字符集之间的任何字符(字母、数字、符号等) 双引号 (")、单引号 (') 或反引号 (`) 是一个字符串基元。您在本课程中已经学习过有关字符串的 本课程包含上一单元中 console.log 的实例, 字符串基元。

console.log( "Hello, World." );
> Hello, World.

"Hello, World." 是一个字符串基元。使用一个 引号或反引号:

console.log( 'Hello, World.' );
> Hello, World.

console.log(`Hello, World.`);
> Hello, World.

用引号括起来的一系列字符称为字符串字面量。 双引号和单引号的作用相同,可以同时包含 字符串本身中的一个字符:

console.log( "I'm a string." );
> I'm a string.

console.log( '"A string," I said.' );
> "A string," I said.

字符串“closes”内出现相同封闭字符的实例该 字符串,可能会导致错误:

console.log( '"I'm a string," I said.' );
> Uncaught SyntaxError: missing ) after argument list

为避免出现这种情况,请使用反斜杠 (/) 转义字符:

console.log( '"I\'m a string," I said.' );
> "I'm a string," I said.

字符串对象

作为函数进行调用时,String 对象会将指定值强制转换为 字符串字面量。

let myString = String( 10 );

myString
> "10"

typeof myString
> string

原型继承中所详述,您很少需要将 String 对象用作构造函数。它会创建一个 包含指定值的字符串对象,以及方法和 String 对象所提供的属性,而不是字符串字面量。

let stringObj = new String( "My new string." );

typeof stringObj
> object

stringObj
> String { "My new string." }

串联

在字符串(而非数字)上下文中使用时,单个加号 (+) 会用作串联运算符,将多个字符串值组合成一个字符串:

console.log( "My" + " string." );
> My string.

字符串字面量和模板字面量

英文单引号、双引号和反引号可以互换使用 创建字符串基元。不过,您也可以使用反引号指定 模板字面量(有时称为“模板字符串”)。取消 由单引号或双引号创建的字符串字面量,模板字面量允许 用于多行字符串和字符串插值。

const myString = "This
is a string.";
> Uncaught SyntaxError: "" string literal contains an unescaped line break

const myString = `This
is a string.`;

console.log( myString );

> This
is a string.

模板字面量可以包含用美元符号标记的占位符表达式 和大括号 (${})。这些占位符是“内插”的默认情况下 这意味着表达式的结果将替换最后一个 字符串。

console.log( "The result is " + ( 2 + 4 ) + "." );
> The result is 6.
console.log( `The result is ${ 2 + 4 }.` );
> The result is 6.

模板字面量可传递给自定义函数 创建带标记的模板,即使用单个模板的函数调用 作为一组参数,并允许其占位符根据 由作者定义的逻辑

代码段函数的第一个参数包含一个字符串值数组,其余参数用于定义占位符。该字符串值数组为 由“拆分”和“拆分”模板字面量。通过 数组中的第一个元素包含第一个占位符之前的所有字符, 第二个元素包含第一个和第二个之间的任何字符 占位符等。每个占位符会作为 具有关联占位符的独立值。

const myNoun = "template literal";

function myTagFunction( myStrings, myPlaceholder ) {
    const myInitialString = myStrings[ 0 ];
    console.log( `${ myInitialString }modified ${ myPlaceholder }.` );
}

myTagFunction`I'm a ${ myNoun }.`;
> "I'm a modified template literal."

检查您的理解情况

哪个字符用于转义字符?

正斜杠 (/)
英文双引号 (")
反斜杠 ()

连接时应使用哪个字符?

.
+
&