JavaScript là một ngôn ngữ động, nói một cách chi tiết, mỗi thành phần Javascript đều động bắt đầu từ các biến. Với sự trợ giúp của JavaScript, bạn có thể tạo các biến trong thời gian chạy, thay đổi kiểu dữ liệu, tạo các hàm mới hoặc thay thế logic hiện có. Nói cách khác, trong khi sử dụng JavaScript, nhà phát triển gần như có toàn quyền kiểm soát.
JavaScript tuân theo nguyên tắc này khá chặt chẽ, trong khi trong dự án của một lập trình viên thiện xạ, JavaScript hoạt động như một trong những Ngôn ngữ lập trình tốt nhất hiện có, nhưng nó có thể hoạt động hoàn toàn ngẫu nhiên trong tay của một người mới. Hành vi ngẫu nhiên này trong khi là một phần không thể thiếu để xây dựng mong muốn học JavaScript từ trong ra ngoài có thể tạo ra sự phức tạp nhất định, đặc biệt nếu được sử dụng trong một dự án. Các nhà phát triển JavaScript đã thêm một tính năng mới trong ES5 được gọi là chế độ nghiêm ngặt(strict mode), được cho là không cho phép một số hành vi nhất định của ngôn ngữ để giảm hành vi ngẫu nhiên và tăng khả năng phát hiện code được viết kém. Tập hợp các hạn chế này làm cho code an toàn hơn nhiều và duy trì tiêu chuẩn code cao nói chung. Các code JavaScript được tối ưu hóa trước khi thực thi bởi công cụ, bằng cách sử dụng chế độ nghiêm ngặt, người ta thấy rằng các nhà phát triển giờ đây có thể viết các chương trình được tối ưu hóa cao. Nó không chỉ được khuyến nghị bởi các nhà phát triển mà còn là sự bắt buộc đưa vào các tiêu chuẩn viết code công nghiệp. Sau đây hãy cùng với Thế giới JS tìm hiểu chi tiết.
Cú pháp: Để sử dụng chế độ nghiêm ngặt trong tập lệnh của bạn, chúng tôi chỉ cần thực hiện dòng sau bên dưới, chế độ nghiêm ngặt còn được gọi là pragma chế độ nghiêm ngặt có phạm vi riêng và có thể ảnh hưởng đến toàn bộ tệp hoặc các phương thức riêng lẻ tùy thuộc vào cùng một.
“use strict”;
Các chức năng: Hiện tại, chúng tôi biết rằng chế độ nghiêm ngặt về cơ bản là một chế độ JavaScript chú trọng nhiều hơn đến cú pháp đúng và các mô hình logic khác mà chế độ này từng cho phép mà không cần thăm dò nhiều. Nhưng, những lỗi cú pháp và logic này không được phép ở chế độ nghiêm ngặt nữa là gì? Sau đây là một danh sách ngắn gọn của một vài người quan trọng.
Khai báo biến toàn cầu tự động: Đây là một trong những vấn đề lớn nhất trong JavaScript, nếu không sử dụng chế độ nghiêm ngặt nếu bạn sử dụng nhầm một biến mà không có định nghĩa của nó, JavaScript sẽ không đưa ra lỗi thay vào đó nó khai báo biến trong phạm vi toàn cầu, điều này thường dẫn đến tính ngẫu nhiên và đầu ra không mong muốn. Với chế độ nghiêm ngặt được bật, nó sẽ đưa ra lỗi tham chiếu thông thường thông báo rằng biến được sử dụng chưa bao giờ được xác định.
Code:
“use strict”; // Bật chế độ nghiêm ngặt.
a = 1;
Đầu ra:
Uncaught ReferenceError: a không được xác định
- Lưu ý: Trong JavaScript, các đối tượng cũng là các biến, do đó, nó cũng yêu cầu từ khóa ‘var’, ‘let’ hoặc ‘const’ để khai báo một biến.
- Xóa bất kỳ phần tử JavaScript nào: Đây là một thay đổi lớn so với chế độ thông thường vì ở chế độ nghiêm ngặt, không được phép xóa bất kỳ biến hoặc hàm nào. Điều này làm cho code trở nên tối ưu hơn nhiều vì phạm vi là tĩnh và không thay đổi trong suốt thời gian tồn tại.
Code:
“use strict”; // Bật chế độ nghiêm ngặt.
var a = 1;
delete a;
Đầu ra:
Uncaught SyntaxError: Xóa code định danh không đủ tiêu chuẩn ở chế độ nghiêm ngặt.
- Lưu ý: Bạn có thể hỏi tại sao lại báo lỗi không đủ tiêu chuẩn ? JavaScript cung cấp chức năng mà bạn có thể khai báo một thuộc tính của một đối tượng là có thể xóa để đủ điều kiện xóa thuộc tính đó ở chế độ nghiêm ngặt.
- Sử dụng các từ khóa dành riêng làm tên biến: Không giống như hầu hết các ngôn ngữ khác, JavaScript cho phép sử dụng các từ khóa dành riêng làm tên biến không được phép ở chế độ nghiêm ngặt.
Code:
“use strict”; // Bật chế độ nghiêm ngặt.
var eval = 5;
Đầu ra:
Uncaught SyntaxError: Giá trị hoặc đối số không mong đợi ở chế độ nghiêm ngặt.
Sao chép tên tham số: Không giống như hầu hết các ngôn ngữ lập trình khác, JavaScript cho phép sử dụng tên tham số trùng lặp không được phép ở chế độ nghiêm ngặt. Nguồn:
Thí dụ:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // Normal mode function myFunc(a, a){ console.log(a); } myFunc(0, 10);
Đầu ra:
10
Thí dụ:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // Strict mode "use strict"; // Turn on strict mode. function myFunc(a, a){ console.log(a); } myFunc(0, 10);
Đầu ra:
Uncaught SyntaxError: Tên tham số trùng lặp không được phép trong ngữ cảnh này
Trên đây là tất cả những gì về Chế độ nghiêm ngặt(strict) trong javascript mà bạn cần biết. Nếu bạn có bất kỳ câu hỏi liên quan tới Chế độ nghiêm ngặt(strict), hãy chủ động liên hệ và inbox cho chúng tôi, để giúp đỡ bạn sớm nhất
Tiếp theo, hãy cùng Thế giới JS tìm hiểu thêm các kiến thức về Javascript trong các bài tiếp theo trong series học miễn phí Javascript từ cơ bản tới nâng cao.
Nếu bạn cảm thấy hữu ích và yêu thích Thế giới JS, hãy tham gia và theo dõi chúng tôi để nhận thêm nhiều kiến thức MIỄN PHÍ hơn nữa nhé:
Share to learn more than!