Strict mode trong Javascript

Mở đầu


Use trict là một tính năng trong ECMA Script 5, cho phép bạn đặt trong một chương trình, cũng có thể đặt trong một hàm. Đây là một tính năng an toàn của javascript, nó ngăn chặn một số hành động nhất định được thực hiện và ném thêm ngoại lệ.

Lợi ích của việc việc sử dụng use strict

Strict mode thực hiện một số thay đổi đối với ngữ nghĩa JavaScript thông thường.

  • Chế độ nghiêm ngặt giúp loại bỏ một số lỗi im lặng JavaScript bằng cách thay đổi chúng để ném lỗi.
  • Chế độ nghiêm ngặt sửa các lỗi khiến các công cụ JavaScript khó thực hiện tối ưu hóa: mã chế độ nghiêm ngặt đôi khi có thể được thực hiện để chạy nhanh hơn mã giống hệt mà chế độ không nghiêm ngặt.
  • Chế độ nghiêm ngặt nghiêm cấm một số cú pháp có thể được xác định trong các phiên bản tương lai của ECMAScript.
  • Nó ngăn chặn hoặc ném lỗi, khi các hành động tương đối không an toàn được thực hiện (chẳng hạn như giành quyền truy cập vào đối tượng toàn cầu).
  • Nó vô hiệu hóa các tính năng gây nhầm lẫn hoặc suy nghĩ kém.
  • Chế độ nghiêm ngặt giúp việc viết JavaScript JavaScript bảo mật dễ dàng hơn.

Cách sử dụng strict mode

Chế độ nghiêm ngặt có thể được sử dụng theo hai cách - được sử dụng trong phạm vi toàn cầu cho toàn bộ tập lệnh và có thể được áp dụng cho các chức năng riêng lẻ. Strict mode không hoạt động với các câu lệnh chặn được đính kèm trong {} dấu ngoặc nhọn.

Sử dụng strict mode cho toàn bộ câu lệnh

'use strict';
var v = "strict mode script!";

Ví dụ về sử dụng strict mode

Sử dụng strict mode, không cho phép sử dụng biến mà không khai báo

// Using a variable, without declaring it, is not allowed:
"use strict";
x = 3.14;                // This will cause an error
// Objects are variables too.
Using an object, without declaring it, is not allowed:
"use strict";
x = {p1:10, p2:20};      // This will cause an error 

Xóa biến(hoặc đối tượng) và hàm thì không được cho phép

Deleting a function is also not allowed
"use strict";
function x(p1, p2) {}; 
delete x;                // This will cause an error

Nhân đôi tên tham số không được phép

"use strict";
function x(p1, p1) {};   // This will cause an error

Số bát phân không được cho phép

"use strict";
var x = 010;             // This will cause an error

Thừa kí tự không được phép

"use strict";
var x = \010;            // This will cause an error

Vì lý do bảo mật, eval() không được dùng để tạo biến trong hàm

"use strict";
eval ("var x = 2");
alert (x);  // This will cause an error

**Tài liệu tham khảo: **

https://www.geeksforgeeks.org/strict-mode-javascript/