JavaScript - Chế độ Khắc khe

Xin chào các pháp sư JavaScript tương lai! Hôm nay, chúng ta sẽ cùng tìm hiểu về một chủ đề có thể听起来 hơi đáng sợ ban đầu, nhưng tôi诺诺, nó sẽ vui như việc tìm thấy một cọng khoai tây chiên thừa ở dưới đáy túi đồ ăn nhanh. Chúng ta sẽ nói về Chế độ Khắc khe của JavaScript!

JavaScript - Strict Mode

Chế độ Khắc khe trong JavaScript

Hãy tưởng tượng bạn đang học lái xe. Ban đầu, giáo viên của bạn có thể sẽ rất dễ dãi, để qua những lỗi nhỏ. Nhưng khi bạn tiến bộ, họ sẽ trở nên严格 hơn, chỉ ra mỗi lỗi nhỏ. Đó chính xác là điều mà Chế độ Khắc khe của JavaScript làm - nó giống như một giáo viên lái xe严格 của mã của bạn!

Chế độ Khắc khe là một tính năng được giới thiệu trong ECMAScript 5 (ES5) cho phép bạn đặt một chương trình hoặc một hàm vào một ngữ cảnh "严格" hoạt động. Ngữ cảnh này ngăn cản một số hành động và ném nhiều ngoại lệ hơn.

Kích hoạt Chế độ Khắc khe

Kích hoạt Chế độ Khắc khe dễ như باز (và ai lại không thích bánh pie?). Bạn chỉ cần thêm chuỗi "use strict" ở đầu của script hoặc hàm của bạn. Hãy cùng xem nó trông như thế nào:

"use strict";

// Mã của bạn ở đây

Đó là tất cả! Bạn đã vừa kích hoạt Chế độ Khắc khe cho toàn bộ script của mình. Nhưng nhớ rằng, nó giống như việc thắt dây an toàn - nó chỉ hoạt động nếu bạn làm từ đầu!

Tại sao sử dụng Chế độ Khắc khe?

Hiện tại, bạn có thể đang tự hỏi, "Tại sao tôi lại muốn làm JavaScript严格 hơn? Nó đã đủ phức tạp rồi?" Được rồi, người bạn trẻ, Chế độ Khắc khe thực sự ở đây để giúp bạn. Dưới đây là một số lý do tại sao bạn có thể muốn sử dụng nó:

  1. Nó bắt các lỗi lập trình phổ biến, ném ngoại lệ.
  2. Nó ngăn cản, hoặc ném lỗi, khi các hành động "không an toàn" được thực hiện.
  3. Nó vô hiệu hóa các tính năng gây rối hoặc không được suy nghĩ kỹ.
  4. Nó làm cho mã của bạn an toàn hơn.
  5. Nó giúp bạn viết mã "sạch sẽ" hơn.

Hãy xem một ví dụ đơn giản:

"use strict";

x = 3.14; // Điều này sẽ gây ra lỗi

Without Strict Mode, JavaScript would happily create a global variable x. But with Strict Mode, it throws an error because you forgot to declare the variable with let, const, or var. It's like having a friend who always reminds you to tie your shoelaces!

Chế độ Khắc khe trong Phạm vi Toàn cục

Khi bạn sử dụng Chế độ Khắc khe trong phạm vi toàn cục (ngoài bất kỳ hàm nào), nó áp dụng cho toàn bộ script. Dưới đây là một ví dụ:

"use strict";

function doSomething() {
x = 10; // Điều này sẽ gây ra lỗi
}

doSomething();

Trong trường hợp này, mặc dù x = 10 nằm trong một hàm, nó vẫn sẽ gây ra lỗi vì Chế độ Khắc khe được kích hoạt cho toàn bộ script.

Chế độ Khắc khe trong Phạm vi Cục bộ

Bạn cũng có thể sử dụng Chế độ Khắc khe trong một hàm cụ thể. Điều này rất hữu ích khi bạn làm việc trên một dự án lớn và chỉ muốn áp dụng Chế độ Khắc khe cho một phần cụ thể của mã của bạn. Dưới đây là cách bạn làm:

function strictFunction() {
"use strict";
// Hàm này ở trong chế độ strict
y = 20; // Điều này sẽ gây ra lỗi
}

function nonStrictFunction() {
// Hàm này không ở trong chế độ strict
z = 30; // Điều này sẽ không gây ra lỗi
}

strictFunction();
nonStrictFunction();

Trong ví dụ này, strictFunction() sẽ ném lỗi, nhưng nonStrictFunction() sẽ không. Nó giống như có một biển báo "No Shoes, No Shirt, No Service" nhưng chỉ cho một phòng trong nhà của bạn!

Các Lỗi không nên phạm trong Chế độ Khắc khe

Bây giờ, hãy nói về một số lỗi phổ biến mà Chế độ Khắc khe sẽ bắt. Hãy nghĩ về chúng như là các "không nên" của Chế độ Khắc khe:

Lỗi Ví dụ Giải thích
Sử dụng biến chưa được khai báo x = 3.14; Biến phải được khai báo bằng let, const, hoặc var
Sử dụng delete trên biến delete x; Bạn không thể xóa biến, hàm, hoặc đối số
Lặp lại tên tham số function f(a, a, b) {} Không cho phép lặp lại tên tham số
Sử dụng cú pháp số hệ tám var n = 023; Cú pháp số hệ tám không được phép
Ghi vào thuộc tính chỉ đọc var obj = {}; Object.defineProperty(obj, "x", { value: 0, writable: false }); obj.x = 3.14; Không thể ghi vào thuộc tính chỉ đọc
Sử dụng lệnh with with (Math) { x = cos(2); } Lệnh with không được phép

Hãy xem một ví dụ phức tạp hơn minh họa một số quy tắc này:

"use strict";

function calculateArea(radius, radius) {
// Tên tham số trùng lặp - điều này sẽ gây ra lỗi
with (Math) {
// Sử dụng lệnh 'with' - điều này sẽ gây ra lỗi
return PI * radius * radius;
}
}

var result = calculateArea(5, 5);
console.log(result);

Mã này có hai vấn đề: tên tham số trùng lặp và sử dụng lệnh with. Chế độ Khắc khe sẽ bắt cả hai và ném lỗi, giúp bạn viết mã tốt hơn, dễ bảo trì hơn.

Cuối cùng, Chế độ Khắc khe giống như một người bạn siêu thông minh, hơi khó tính nhìn qua vai bạn khi bạn lập trình. Nó có thể看起来 phiền phức ban đầu, nhưng nó ở đó để giúp bạn trở thành một nhà phát triển JavaScript tốt hơn. Hãy đón nhận nó, sử dụng nó, và nhìn thấy chất lượng mã của bạn bay cao!

Nhớ rằng, trong thế giới lập trình, việc严格 không phải là về việc khó tính - nó là về việc rõ ràng, chính xác và không có lỗi. Vậy hãy đi và mã hóa strict, các bạn!

Credits: Image by storyset