Javascript thoát dấu ngoặc kép
Mẫu chữ là chữ được phân tách bằng ký tự backtick ( 4), cho phép chuỗi nhiều dòng, phép nội suy chuỗi với biểu thức nhúng và cấu trúc đặc biệt được gọi là mẫu được gắn thẻ Show Chữ mẫu đôi khi được gọi một cách không chính thức là chuỗi mẫu, bởi vì chúng được sử dụng phổ biến nhất cho phép nội suy chuỗi (để tạo chuỗi bằng cách thay thế các trình giữ chỗ). Tuy nhiên, một mẫu chữ được gắn thẻ có thể không dẫn đến một chuỗi; cú pháp
Thông số 5Văn bản chuỗi sẽ trở thành một phần của mẫu chữ. Hầu như tất cả các ký tự đều được phép theo nghĩa đen, bao gồm ngắt dòng và các ký tự khoảng trắng khác. Tuy nhiên, các chuỗi thoát không hợp lệ sẽ gây ra lỗi cú pháp, trừ khi chức năng thẻ được sử dụng 6Một biểu thức được chèn vào vị trí hiện tại, có giá trị được chuyển đổi thành một chuỗi hoặc được chuyển đến 7 7Nếu được chỉ định, nó sẽ được gọi với mảng chuỗi mẫu và biểu thức thay thế, và giá trị trả về trở thành giá trị của chữ mẫu. Xem các mẫu được gắn thẻ Sự miêu tảVăn bản mẫu được đặt trong dấu gạch ngược (_______04) ký tự thay vì dấu ngoặc kép hoặc dấu ngoặc đơn Cùng với việc có các chuỗi bình thường, các mẫu chữ cũng có thể chứa các phần khác được gọi là trình giữ chỗ, là các biểu thức nhúng được phân tách bằng ký hiệu đô la và dấu ngoặc nhọn. 0. Các chuỗi và trình giữ chỗ được chuyển đến một hàm — hàm mặc định hoặc hàm bạn cung cấp. Hàm mặc định (khi bạn không cung cấp hàm của riêng mình) chỉ thực hiện phép nội suy chuỗi để thay thế các trình giữ chỗ và sau đó nối các phần thành một chuỗiĐể cung cấp một chức năng của riêng bạn, hãy đặt trước mẫu chữ một tên chức năng; . Trong trường hợp đó, chữ mẫu được chuyển đến chức năng thẻ của bạn, sau đó bạn có thể thực hiện bất kỳ thao tác nào bạn muốn trên các phần khác nhau của chữ mẫu Để thoát dấu gạch ngược trong mẫu chữ, hãy đặt dấu gạch chéo ngược ( 1) trước dấu gạch ngược
Dấu hiệu đô la cũng có thể được thoát để ngăn nội suy
Chuỗi nhiều dòngBất kỳ ký tự dòng mới nào được chèn vào nguồn đều là một phần của mẫu chữ Sử dụng các chuỗi bình thường, bạn sẽ phải sử dụng cú pháp sau để có được các chuỗi nhiều dòng
Sử dụng chữ mẫu, bạn có thể làm tương tự với điều này 2nội suy chuỗiNếu không có mẫu chữ, khi bạn muốn kết hợp đầu ra từ biểu thức với chuỗi, bạn sẽ nối chúng bằng toán tử cộng 2 4Điều đó có thể khó đọc – đặc biệt là khi bạn có nhiều biểu thức Với mẫu chữ, bạn có thể tránh toán tử nối — và cải thiện khả năng đọc mã của bạn — bằng cách sử dụng trình giữ chỗ có dạng 0 để thực hiện thay thế cho các biểu thức được nhúng 6Lưu ý rằng có một sự khác biệt nhỏ giữa hai cú pháp. Các mẫu chữ ép buộc các biểu thức của chúng trực tiếp vào các chuỗi, trong khi phép cộng ép buộc các toán hạng của nó thành các nguyên hàm trước. Để biết thêm thông tin, hãy xem trang tham khảo cho toán tử 2mẫu lồng nhauTrong một số trường hợp nhất định, lồng mẫu là cách dễ nhất (và có lẽ dễ đọc hơn) để có các chuỗi có thể định cấu hình. Trong mẫu được phân cách bằng dấu gạch ngược, thật đơn giản để cho phép dấu gạch ngược bên trong bằng cách sử dụng chúng bên trong trình giữ chỗ 0 trong mẫuVí dụ: không có mẫu chữ, nếu bạn muốn trả về một giá trị nhất định dựa trên một điều kiện cụ thể, bạn có thể làm như sau 9Với một mẫu chữ nhưng không lồng nhau, bạn có thể làm điều này 0Với việc lồng các chữ mẫu, bạn có thể làm điều này 1mẫu được gắn thẻMột dạng văn bản mẫu nâng cao hơn là các mẫu được gắn thẻ Các thẻ cho phép bạn phân tích các chữ mẫu bằng một hàm. Đối số đầu tiên của hàm thẻ chứa một mảng các giá trị chuỗi. Các đối số còn lại có liên quan đến các biểu thức Sau đó, hàm thẻ có thể thực hiện bất kỳ thao tác nào trên các đối số này mà bạn muốn và trả về chuỗi đã thao tác. (Ngoài ra, nó có thể trả về một cái gì đó hoàn toàn khác, như được mô tả trong một trong các ví dụ sau. ) Tên của chức năng được sử dụng cho thẻ có thể là bất cứ điều gì bạn muốn 0Thẻ không nhất thiết phải là một mã định danh đơn giản. Bạn có thể sử dụng bất kỳ biểu thức nào có mức độ ưu tiên lớn hơn 16, bao gồm quyền truy cập thuộc tính, lệnh gọi hàm, biểu thức mới hoặc thậm chí một ký tự mẫu được gắn thẻ khác 1Mặc dù cú pháp cho phép về mặt kỹ thuật, các mẫu chữ không được gắn thẻ là các chuỗi và sẽ tạo ra một 6 khi được xâu chuỗi 2Ngoại lệ duy nhất là chuỗi tùy chọn, sẽ gây ra lỗi cú pháp 3Lưu ý rằng hai biểu thức này vẫn có thể phân tích cú pháp. Điều này có nghĩa là chúng sẽ không bị chèn dấu chấm phẩy tự động, mà sẽ chỉ chèn dấu chấm phẩy để sửa mã mà nếu không thì không thể phân tích cú pháp 4Các hàm thẻ thậm chí không cần trả về một chuỗi 5Đối số đầu tiên mà hàm thẻ nhận được là một mảng các chuỗi. Đối với bất kỳ mẫu chữ nào, độ dài của nó bằng số lần thay thế (lần xuất hiện của 7) cộng với một và do đó luôn không trốngĐối với bất kỳ biểu thức chữ cái mẫu được gắn thẻ cụ thể nào, hàm thẻ sẽ luôn được gọi với cùng một mảng chữ chính xác, bất kể chữ đó được đánh giá bao nhiêu lần 6Điều này cho phép thẻ lưu trữ kết quả dựa trên danh tính của đối số đầu tiên của nó. Để đảm bảo hơn nữa tính ổn định của giá trị mảng, đối số đầu tiên và thuộc tính 8 của nó đều bị đóng băng, vì vậy bạn không thể thay đổi chúng theo bất kỳ cách nàodây thôThuộc tính đặc biệt 8, có sẵn trên đối số đầu tiên của hàm thẻ, cho phép bạn truy cập các chuỗi thô khi chúng được nhập mà không cần xử lý các chuỗi thoát 7Ngoài ra, phương thức 20 tồn tại để tạo các chuỗi thô giống như hàm mẫu mặc định và phép nối chuỗi sẽ tạo ra 8 21 có chức năng giống như thẻ "nhận dạng" nếu chữ không chứa bất kỳ chuỗi thoát nào. Trong trường hợp bạn muốn một thẻ nhận dạng thực tế luôn hoạt động như thể chữ không được gắn thẻ, bạn có thể tạo một chức năng tùy chỉnh vượt qua "đã nấu chín" (i. e. trình tự thoát được xử lý) mảng chữ thành 21, giả vờ rằng chúng là chuỗi thô 9Điều này hữu ích cho nhiều công cụ xử lý đặc biệt các chữ được gắn thẻ theo một tên cụ thể 0Các mẫu được gắn thẻ và trình tự thoátTrong các mẫu chữ bình thường, tất cả các chuỗi thoát trong chuỗi ký tự đều được phép. Bất kỳ chuỗi thoát không đúng định dạng nào khác đều là lỗi cú pháp. Điêu nay bao gôm
Ghi chú. 1 theo sau là các ký tự khác, mặc dù chúng có thể vô dụng vì không có gì được thoát, không phải là lỗi cú phápTuy nhiên, đây là vấn đề đối với các mẫu được gắn thẻ, ngoài chữ "đã nấu chín", còn có quyền truy cập vào các chữ thô (các chuỗi thoát được giữ nguyên như hiện trạng) Các mẫu được gắn thẻ sẽ cho phép nhúng các ngôn ngữ (ví dụ: DSL hoặc LaTeX), trong đó các chuỗi thoát khác là phổ biến. Do đó, hạn chế cú pháp của các chuỗi thoát đúng định dạng sẽ bị xóa khỏi các mẫu được gắn thẻ 1Tuy nhiên, các chuỗi thoát bất hợp pháp vẫn phải được biểu diễn trong biểu diễn "nấu chín". Chúng sẽ hiển thị dưới dạng phần tử 48 trong mảng "đã nấu chín" 2Lưu ý rằng hạn chế chuỗi thoát chỉ bị loại bỏ khỏi các mẫu được gắn thẻ chứ không phải từ các mẫu chữ không được gắn thẻ |