JavaScript "sử dụng nghiêm ngặt"

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ụ.

'use strict';nói rằng mã JavaScript phải được thực thi ở ' chế độ nghiêm ngặt '. Điều này giúp viết mã JavaScript tốt và an toàn dễ dàng hơn. Ví dụ,

 myVariable = 9;

Ở đây, myVariable được tạo mà không cần khai báo. Điều này hoạt động như một biến toàn cục trong JavaScript. Tuy nhiên, nếu bạn sử dụng điều này ở chế độ nghiêm ngặt, chương trình sẽ báo lỗi. Ví dụ,

 'use strict'; // Error myVariable = 9;

Đoạn mã trên gây ra lỗi vì myVariable không được khai báo. Trong chế độ nghiêm ngặt, bạn không thể sử dụng biến mà không khai báo chúng.

Để cho biết chương trình này đang ở chế độ nghiêm ngặt, chúng tôi đã sử dụng

 'use strict';

ở đầu chương trình.

Bạn có thể khai báo chế độ nghiêm ngặt bằng cách thêm 'use strict';hoặc "use strict";vào đầu chương trình.

Khi bạn khai báo chế độ nghiêm ngặt ở đầu chương trình, nó sẽ có phạm vi toàn cầu và tất cả mã trong chương trình sẽ thực thi ở chế độ nghiêm ngặt.

Chế độ nghiêm ngặt trong biến

Trong chế độ nghiêm ngặt, việc sử dụng một biến mà không khai báo nó sẽ gây ra lỗi.

Lưu ý : Bạn cần khai báo chế độ nghiêm ngặt khi bắt đầu chương trình. Nếu bạn khai báo chế độ nghiêm ngặt bên dưới một số mã, nó sẽ không hoạt động.

Ví dụ,

 console.log("some code"); // 'use strict' is ignored // must be at the top "use strict"; x = 21; // does not throw an error

Chế độ nghiêm ngặt trong chức năng

Bạn cũng có thể sử dụng chế độ nghiêm ngặt bên trong một hàm. Ví dụ,

 myVariable = 9; console.log(myVariable); // 9 function hello() ( // applicable only for this function 'use strict'; string = 'hello'; // throws an error ) hello();

Nếu bạn sử dụng 'use strict';bên trong một hàm, mã bên trong hàm sẽ ở chế độ nghiêm ngặt.

Trong chương trình trên, 'use strict';được sử dụng bên trong hello()hàm. Do đó, chế độ nghiêm ngặt chỉ được áp dụng bên trong hàm.

Như bạn thấy, trong phần đầu của chương trình, myVariableđược sử dụng mà không cần khai báo.

Nếu bạn khai báo 'use strict';ở đầu chương trình, bạn không thể sử dụng một biến mà không khai báo nó bên trong hàm. Ví dụ,

 // applicable to whole program 'use strict'; function hello() ( string = 'hello'; // throws an error ) hello();

Lưu ý : Chế độ nghiêm ngặt không áp dụng cho các câu lệnh khối có ()dấu ngoặc nhọn.

Những điều không được phép ở chế độ nghiêm ngặt

1. Biến không được khai báo không được phép.

 'use strict'; a = 'hello'; // throws an error

2. Các đối tượng chưa được khai báo không được phép.

 'use strict'; person = (name: 'Carla', age: 25); // throws an error

3. Không được phép xóa một đối tượng.

 'use strict'; let person = (name: 'Carla'); delete person; // throws an error

4. Không được phép sao chép tên tham số.

 "use strict"; function hello(p1, p1) ( console.log('hello')); // throws an error hello();

5. Không được phép gán cho một tài sản không thể ghi.

 'use strict'; let obj1 = (); Object.defineProperty(obj1, 'x', ( value: 42, writable: false )); // assignment to a non-writable property obj1.x = 9; // throws an error

6. Không được phép chuyển nhượng cho một tài sản chỉ dành cho người nhận.

 'use strict'; let obj2 = ( get x() ( return 17; ) ); // assignment to a getter-only property obj2.x = 5; // throws an error

7. Không được phép gán cho một thuộc tính mới trên một đối tượng không thể mở rộng.

 'use strict'; let obj = (); Object.preventExtensions(obj); // Assignment to a new property on a non-extensible object obj.newValue = 'new value'; // throws an error

8. Cú pháp bát phân không được phép.

 'use strict'; let a = 010; // throws an error

9. Các đối số tên biến và eval không được phép.

 'use strict'; let arguments = 'hello'; // throws an error let eval = 44;

10. Bạn cũng không thể sử dụng các từ khóa dành riêng này ở chế độ nghiêm ngặt.

implements interface let package private protected public static yield

Lợi ích của Chế độ nghiêm ngặt

Việc sử dụng chế độ nghiêm ngặt:

  • giúp viết mã rõ ràng hơn
  • thay đổi các lỗi im lặng được chấp nhận trước đó (cú pháp xấu) thành lỗi thực và đưa ra thông báo lỗi
  • giúp viết JavaScript "an toàn" dễ dàng hơn

thú vị bài viết...