Chuỗi

Bất kỳ tập hợp ký tự nào (chữ cái, số, ký hiệu, v.v.) giữa một tập hợp dấu ngoặc kép ("), dấu ngoặc đơn (') hoặc dấu nháy đơn (") đều là một chuỗi gốc. Bạn đã thấy một vài ví dụ về chuỗi trong khoá học này: các thực thể của console.log trong mô-đun trước chứa các chuỗi gốc.

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

"Hello, World." là một chuỗi gốc. Bạn sẽ nhận được kết quả tương tự với dấu ngoặc kép đơn hoặc dấu ngã:

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

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

Một chuỗi ký tự được đặt trong dấu ngoặc kép được gọi là chuỗi cố định. Dấu ngoặc kép và dấu nháy đơn hoạt động theo cách tương tự và một dấu có thể chứa dấu khác dưới dạng một ký tự trong chính chuỗi đó:

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

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

Một thực thể của cùng một ký tự đóng trong chuỗi "đóng" chuỗi, có thể gây ra lỗi:

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

Để tránh điều này, hãy thoát ký tự bằng dấu gạch chéo ngược (\):

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

Đối tượng chuỗi

Khi được gọi dưới dạng hàm, đối tượng String sẽ buộc một giá trị đã chỉ định thành một chuỗi cố định.

let myString = String( 10 );

myString
> "10"

typeof myString
> string

Như đã trình bày chi tiết trong phần kế thừa nguyên mẫu, bạn hiếm khi cần sử dụng đối tượng String làm hàm khởi tạo. Phương thức này tạo một đối tượng chuỗi chứa giá trị đã chỉ định, cùng với các phương thức và thuộc tính mà đối tượng String đã cung cấp, thay vì một chuỗi cố định.

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

typeof stringObj
> object

stringObj
> String { "My new string." }

Nối

Khi được sử dụng trong ngữ cảnh của chuỗi thay vì số, một dấu cộng duy nhất (+) đóng vai trò là toán tử nối, kết hợp nhiều giá trị chuỗi thành một chuỗi duy nhất:

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

Chuỗi cố định và chuỗi cố định mẫu

Bạn có thể sử dụng dấu ngoặc đơn, dấu ngoặc kép và dấu ngã thay thế cho nhau để tạo các chuỗi gốc. Tuy nhiên, bạn cũng có thể sử dụng dấu nháy đơn để chỉ định mã cố định mẫu (đôi khi được gọi là "chuỗi mẫu"). Không giống như chuỗi cố định được tạo bằng dấu ngoặc kép đơn hoặc kép, chuỗi cố định của mẫu cho phép chuỗi nhiều dòng và nội suy chuỗi.

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.

Hằng số mẫu có thể chứa biểu thức phần giữ chỗ được đánh dấu bằng dấu đô la và dấu ngoặc nhọn (${}). Theo mặc định, các phần giữ chỗ này được "lồng ghép", nghĩa là kết quả của biểu thức sẽ thay thế phần giữ chỗ trong chuỗi cuối cùng.

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

Bạn có thể truyền một hằng mẫu đến một hàm tuỳ chỉnh để tạo một mẫu được gắn thẻ, một lệnh gọi hàm sử dụng một hằng mẫu duy nhất làm một tập hợp đối số và cho phép phần giữ chỗ của hàm đó điền sẵn dựa trên logic do tác giả xác định.

Đối số đầu tiên của hàm thẻ chứa một mảng các giá trị chuỗi và các đối số còn lại xác định phần giữ chỗ. Mảng giá trị chuỗi này được tạo bằng cách "phân tách" giá trị cố định của mẫu tại mỗi phần giữ chỗ chứa trong đó. Phần tử đầu tiên trong mảng chứa mọi ký tự cho đến phần giữ chỗ đầu tiên, phần tử thứ hai chứa mọi ký tự giữa phần giữ chỗ đầu tiên và thứ hai, v.v. Mỗi phần giữ chỗ được truyền đến hàm thẻ dưới dạng một giá trị độc lập với phần giữ chỗ được liên kết.

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

Kiểm tra mức độ hiểu biết

Ký tự nào được dùng để thoát ký tự?

Dấu gạch chéo ngược ()
Dấu ngoặc kép (")
Dấu gạch chéo lên (/)

Ký tự nào được dùng để nối?

+
&
.