Template Literals

Frontend SELF VI
Mức độ , Bài học
Có sẵn

3.1 Biểu thức lồng nhau

Trong Template Literals, bạn có thể dùng bất kỳ biểu thức nào, bao gồm gọi hàm, toán tử điều kiện và Template Literals lồng nhau.

Ví dụ:

Trong biểu thức ${a + b} thực hiện phép toán và kết quả được đặt vào chuỗi result.

JavaScript
    
      const a = 5;
      const b = 10;

      const result = `The result of ${a} + ${b} is ${a + b}.`;
      console.log(result); // "The result of 5 + 10 is 15."
    
  

3.2 Template Literals lồng nhau

Template Literals có thể được lồng vào nhau, cho phép tạo ra các chuỗi phức tạp.

Ví dụ:

Lời gọi hàm greet() của đối tượng user được lồng vào trong Template Literals message.

JavaScript
    
      const user = {
        name: 'Bob',
        age: 25,
        greet() {
          return `Hello, ${this.name}!`;
        }
      };

      const message = `${user.greet()} You are ${user.age} years old.`;

      console.log(message); // "Hello, Bob! You are 25 years old."
    
  

3.3 Tagged Templates

Tagged Templates cho phép gọi hàm để xử lý các chuỗi. Điều này cho phép thực hiện các thao tác bổ sung với chuỗi, như quốc tế hóa, chèn HTML an toàn, v.v.

Cú pháp:

    
      function tag(strings, ...values) {
        // xử lý chuỗi và giá trị
        return kết quả;
      }

      const result = tag`Chuỗi mẫu với ${biến số}`;
    
  

Ví dụ:

Hàm highlight() xử lý các chuỗi và giá trị, bọc các giá trị trong HTML tags <span> với class highlight.

JavaScript
    
      function highlight(strings, ...values) {
        return strings.reduce((result, str, i) =>
          `${result}${str}${values[i] || ''}`, '');
      }

      const name = 'Carol';
      const hobby = 'painting';
      const message = highlight`My name is ${name} and I love ${hobby}.`;

      console.log(message);
      // "My name is <span class="highlight">Carol</span> and I love <span class="highlight">painting</span>."
    
  

3.4 Chèn giá trị an toàn

Template Literals giúp tránh một số vấn đề bảo mật phổ biến, như XSS (Cross-Site Scripting), bằng cách chèn giá trị một cách an toàn. Điều này đặc biệt hữu ích khi chèn dữ liệu người dùng vào HTML.

Ví dụ:

Hàm safeHTML() thay thế các ký tự nguy hiểm trong giá trị, ngăn chặn các cuộc tấn công XSS.

JavaScript
    
      function safeHTML(strings, ...values) {
        return strings.reduce((result, str, i) =>
          `${result}${str}${String(values[i]).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')}`, '');
      }

      const userInput = '<script>alert("XSS")</script>';
      const message = safeHTML`User input: ${userInput}`;

      console.log(message);
      // "User input: &lt;script&gt;alert("XSS")&lt;/script&gt;"
    
  
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION