문자열

큰따옴표("), 작은따옴표(') 또는 백틱(``) 사이에 있는 문자(문자, 숫자, 기호 등) 집합은 문자열 원시입니다. 이 과정에서 이미 문자열의 예를 몇 가지 살펴봤습니다. 이전 모듈의 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.

문자열 내에서 동일한 괄호 문자의 인스턴스가 문자열을 '닫아' 오류가 발생할 수 있습니다.

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."

이해도 확인

문자를 이스케이프 처리하는 데 사용되는 문자는 무엇인가요?

백슬래시 ()
큰따옴표 (")
슬래시 (/)

연결에 사용되는 문자는 무엇인가요?

+
&
.