Strict Mode trong JavaScript

Strict mode (Chế độ nghiêm ngặt) trong JavaScript là một cách để đánh dấu mã của bạn với một số tính năng an toàn hơn, giúp phát hiện các lỗi tiềm ẩn và các hành vi không mong muốn. Chế độ này được giới thiệu trong ECMAScript 5 (ES5) và có thể được bật cho toàn bộ tệp hoặc cho từng hàm cụ thể.

Cách Bật Strict Mode

Để bật Strict mode, bạn chỉ cần thêm chuỗi "use strict"; ở đầu tệp JavaScript hoặc trước một hàm.

"use strict";

function myFunction() {
    // Mã của bạn ở đây sẽ chạy trong chế độ nghiêm ngặt
}

Các Tính Năng Của Strict Mode

Strict mode sẽ thay đổi một số hành vi của JavaScript để giúp phát hiện lỗi dễ hơn. Dưới đây là một số tính năng và quy tắc quan trọng:

  • Không cho phép sử dụng biến chưa được khai báo: Trong chế độ nghiêm ngặt, nếu bạn cố gắng sử dụng một biến mà chưa khai báo, JavaScript sẽ ném ra một lỗi.
"use strict";
x = 10; // Lỗi: x chưa được khai báo
  • Không cho phép xóa các biến, đối tượng hoặc hàm không thể xóa: Bạn không thể xóa các đối tượng như Math hay console.
"use strict";
delete Object.prototype; // Lỗi: Không thể xóa thuộc tính không thể xóa
  • Không cho phép đặt tên biến trùng với tên các từ khóa hoặc tên đã sử dụng: Ví dụ, không thể sử dụng từ khóa let làm tên biến.
"use strict";
let = 5; // Lỗi: Không thể sử dụng từ khóa
  • Cấm một số hành vi không an toàn: Chế độ nghiêm ngặt cấm một số hành vi như việc sử dụng with, làm cho mã trở nên không thể dự đoán hơn.
"use strict";
with (Math) { // Lỗi: with không được phép trong chế độ nghiêm ngặt
    console.log(sqrt(16));
}
  • Hạn chế this trong các hàm: Trong chế độ nghiêm ngặt, this trong một hàm không có giá trị ngữ cảnh sẽ là undefined thay vì global (trong trình duyệt, đó là window).
"use strict";
function myFunction() {
    console.log(this); // In ra undefined
}
myFunction(); // Gọi hàm mà không có ngữ cảnh

Lợi Ích Của Strict Mode

  • Phát hiện lỗi sớm: Giúp phát hiện các lỗi mà không dễ nhận ra trong chế độ bình thường, chẳng hạn như biến chưa được khai báo.
  • Tăng cường bảo mật: Ngăn ngừa một số hành vi không an toàn trong mã, giúp giảm thiểu các lỗ hổng bảo mật.
  • Cải thiện hiệu suất: Một số trình duyệt có thể tối ưu hóa mã tốt hơn trong chế độ nghiêm ngặt.

Kết Luận

Strict mode là một công cụ hữu ích để nâng cao chất lượng mã JavaScript của bạn. Bằng cách bật chế độ này, bạn có thể bảo vệ mã của mình khỏi một số lỗi phổ biến và các hành vi không mong muốn, làm cho mã trở nên dễ đọc và bảo trì hơn. Sử dụng Strict mode là một thực hành tốt trong lập trình JavaScript, đặc biệt là trong các dự án lớn và phức tạp.