Chế độ nghiêm ngặt đã được giới thiệu trong ECMAScript 5 (ES5). Đây là phiên bản ngôn ngữ JavaScript hạn chế hoặc chặt chẽ hơn về mặt ngữ nghĩa, tạo ra lỗi cho những lỗi đó được xử lý âm thầm theo cách khác. Ví dụ, ở chế độ không nghiêm ngặt nếu bạn khởi tạo một biến mà không khai báo nó bằng từ khóa 2 (e. g. 3), trình thông dịch JavaScript sẽ cho rằng bạn đang đề cập đến một biến toàn cục và nếu không có biến nào như vậy tồn tại, nó sẽ tự động tạo một biến Show
Ngoài ra, các tính năng không được dùng nữa cũng có thể tạo ra lỗi ở chế độ nghiêm ngặt. Do đó, chế độ nghiêm ngặt giúp giảm lỗi, cải thiện bảo mật và hiệu suất tổng thể của ứng dụng của bạn Kích hoạt chế độ nghiêm ngặtĐể bật chế độ nghiêm ngặt, tất cả những gì bạn cần làm chỉ là thêm chuỗi 4 vào đầu tập lệnh của mình, như trong ví dụ sau
Nếu bạn thêm lệnh 4 làm dòng đầu tiên trong chương trình JavaScript của mình, thì chế độ nghiêm ngặt sẽ áp dụng cho toàn bộ tập lệnh. Tuy nhiên, bạn cũng có thể chỉ bật chế độ nghiêm ngặt trong một chức năng, như thế này
Ghi chú. Lệnh 4 chỉ được nhận dạng khi bắt đầu tập lệnh hoặc chức năng. Tất cả các trình duyệt hiện đại đều hỗ trợ chỉ thị 4 ngoại trừ Internet Explorer 9 và các phiên bản thấp hơn. Ngoài ra, các trình duyệt không hỗ trợ lệnh 4 sẽ âm thầm bỏ qua lệnh đó và phân tích cú pháp JavaScript ở chế độ không nghiêm ngặtHạn chế chung trong Chế độ nghiêm ngặtChế độ nghiêm ngặt thay đổi cả hành vi cú pháp và thời gian chạy. Trong các phần sau, chúng ta sẽ xem xét các hạn chế chung được thực thi ở chế độ nghiêm ngặt Các biến không khai báo không được phépNhư bạn đã biết, trong chế độ nghiêm ngặt, tất cả các biến phải được khai báo. nếu bạn gán một giá trị cho một mã định danh không phải là một biến được khai báo, thì ReferenceError sẽ được đưa ra
Không được phép xóa một biến hoặc một hàmỞ chế độ nghiêm ngặt, nếu bạn cố xóa một biến hoặc một hàm, lỗi cú pháp sẽ xuất hiện. Trong khi đó, ở chế độ không nghiêm ngặt, nỗ lực đó không thành công một cách âm thầm và biểu thức xóa có giá trị là 9
Tương tự, khi bạn cố xóa một chức năng ở chế độ nghiêm ngặt, bạn sẽ gặp lỗi cú pháp
Sao chép tên tham số là không được phépỞ chế độ nghiêm ngặt, một lỗi cú pháp sẽ được đưa ra, nếu khai báo hàm có hai hoặc nhiều tham số có cùng tên. Ở chế độ không nghiêm ngặt, không có lỗi xảy ra
Phương pháp eval không thể thay đổi phạm viỞ chế độ nghiêm ngặt, vì lý do bảo mật, mã được chuyển đến 0 không thể khai báo/sửa đổi biến hoặc xác định hàm trong phạm vi xung quanh như ở chế độ không nghiêm ngặt
Không thể sử dụng eval và đối số làm Định danhỞ chế độ nghiêm ngặt, tên 1 và 2 được coi như từ khóa, vì vậy chúng không thể được sử dụng làm tên biến, tên hàm hoặc tên tham số hàm, v.v.
Tuyên bố with không được phépỞ chế độ nghiêm ngặt, câu lệnh 3 không được phép. Câu lệnh 3 thêm các thuộc tính và phương thức của đối tượng vào phạm vi hiện tại. Vì vậy, các câu lệnh được lồng bên trong câu lệnh 3 có thể gọi trực tiếp các thuộc tính và phương thức của đối tượng mà không cần tham chiếu đến nó
Không được phép ghi vào thuộc tính chỉ đọcỞ chế độ nghiêm ngặt, việc gán giá trị cho thuộc tính không thể ghi, thuộc tính chỉ nhận hoặc thuộc tính không tồn tại sẽ gây ra lỗi. Ở chế độ không nghiêm ngặt, những nỗ lực này không thành công
Không được phép thêm Thuộc tính mới vào Đối tượng không thể mở rộngỞ chế độ nghiêm ngặt, các nỗ lực tạo thuộc tính mới trên các đối tượng không thể mở rộng hoặc không tồn tại cũng sẽ gây ra lỗi. Nhưng ở chế độ không nghiêm ngặt, những nỗ lực này âm thầm thất bại 0Số bát phân không được phépỞ chế độ nghiêm ngặt, các số bát phân (các số có tiền tố là số 0. g. 010, 0377) không được phép. Mặc dù vậy, nó được hỗ trợ trong tất cả các trình duyệt ở chế độ không nghiêm ngặt. Tuy nhiên, trong ES6, các số bát phân được hỗ trợ bằng cách đặt trước một số với 6 i. e. 0o10, 0o377, v.v. 1Bạn có thể thấy rõ trong các ví dụ trên cách chế độ nghiêm ngặt có thể giúp bạn tránh mắc phải các lỗi phổ biến thường không được chú ý khi viết chương trình JavaScript Từ khóa dành riêng cho tương lai không được phépNhư bạn đã biết từ các chương trước, các từ dành riêng không thể được sử dụng làm định danh (tên biến, tên hàm và nhãn vòng lặp) trong chương trình JavaScript. Ngoài ra, chế độ nghiêm ngặt cũng áp đặt các hạn chế đối với việc sử dụng các từ khóa được dành riêng cho tương lai. Theo tiêu chuẩn ECMAScript 6 (hoặc ES6) mới nhất, những từ khóa này là từ khóa dành riêng khi chúng được tìm thấy trong mã chế độ nghiêm ngặt. 7, 8, 9, 0, 1, 2, 3 và 4. Tuy nhiên, để tương thích tối ưu, bạn nên tránh sử dụng các từ khóa dành riêng làm tên biến hoặc tên hàm trong chương trình của mìnhMẹo. Các từ dành riêng, còn được gọi là từ khóa, là những từ đặc biệt là một phần của cú pháp ngôn ngữ JavaScript, ví dụ: 2, 6, 7, 8, v.v. Xem tham chiếu từ khóa dành riêng cho JS để biết danh sách đầy đủ tất cả các từ dành riêng trong JavaScript
Làm cách nào để kích hoạt chế độ nghiêm ngặt trong JavaScript?Chế độ nghiêm ngặt cho chức năng
. Chỉ thị "sử dụng nghiêm ngặt" chỉ có thể được áp dụng cho phần thân của các hàm có tham số đơn giản. put the exact statement "use strict"; (or 'use strict'; ) in the function's body before any other statements. The "use strict" directive can only be applied to the body of functions with simple parameters.
Sử dụng nghiêm ngặt trong JavaScript là gì?Trong hướng dẫn này, bạn sẽ tìm hiểu về cú pháp 'sử dụng nghiêm ngặt' của JavaScript với sự trợ giúp của các ví dụ. Trong JavaScript, 'sử dụng nghiêm ngặt'; . Điều này giúp viết mã JS tốt và an toàn dễ dàng hơn
Tôi có nên sử dụng JavaScript ở chế độ nghiêm ngặt không?Đầu tiên, tất cả mã của bạn phải được chạy ở chế độ nghiêm ngặt. Chức năng javascript hiện đại cốt lõi được thay đổi (xem. gọi () và áp dụng ()) hoặc bị biến dạng (Lỗi im lặng) bằng cách thực thi mã bên ngoài chế độ nghiêm ngặt
Làm thế nào chế độ nghiêm ngặt được kích hoạt?Chế độ nghiêm ngặt có thể được bật bằng cách chỉ cần nêu rõ chế độ này ở đầu tập lệnh của bạn hoặc trong hàm được yêu cầu . Khi một công cụ JavaScript gặp lệnh này, nó sẽ bắt đầu phân tích cú pháp mã ở một chế độ cụ thể, nơi việc bắt lỗi trở nên dễ dàng hơn. |