Use strict là gì

  -  

Chào mọi người bây giờ đến tháng mình lại ngoi lên trên đây

*
hôm nay mình sẽ share về User Strict là gì ? cùng cách thực hiện nó nhé

Trong nhỏ mắt của nhiều lập trình viên, JavaScript là một trong thứ cực kì lộn xộn. Lập trình JavaScript không khác gì cực hình.

Bạn đang xem: Use strict là gì

Tuy nhiên, JavaScript có hỗ trợ cho lập trình sẵn viên cơ chế “use strict“. Bằng việc khai báo với sử dụng cơ chế này, JavaScript sẽ trở nên chính xác và nghiêm nhặt hơn. Do đó, bạn sẽ không thể viết code bừa bến bãi trong chính sách này.

1. Use strict là gì?Use strict dịch thanh lịch tiếng việt thì có nghĩa là sử dụng sự nghiêm ngặt. Lúc 1 đoạn lệnh được khai báo use strict thì toàn bộ các mẫu code ở bên dưới dòng khai báo use strict đang được thống trị một giải pháp nghiêm ngặt rộng về cú pháp.

x = 10;console.log(window.x);// => 10Ở chính sách strict mode, bạn sẽ bị lỗi x không được định nghĩa: Uncaught ReferenceError: x is not definedx = 10;console.log(window.x);// => Uncaught ReferenceError: x is not defined2. Các nghiêm ngặt của strict mode.-Khi sử dụng strict mode các bạn sẽ không thể làm được bước sau đây nữa:

Gán giá chỉ trị đến biến không được khai báo.

-Trong chế độ thường bạn có thể làm như này để gán giá chỉ trị mang lại một trở thành chưa khai báo

variable = "tranvanmy";console.log(variable);-Nhưng strict mode thì ko thể:

"use strict"variable = "tranvanmy";console.log(variable);Uncaught ReferenceError: variable is not defined-Để khắc chế được điều trên thì bạn phải khai báo biến chuyển với từ khóa var hoặc let.

"use strict"var variable = "tranvanmy";// orlet variable = "tranvanmy";console.log(variable);

Báo lỗi khi sử dụng delete.

-Nếu như ở chính sách thường thì bạn cũng có thể xóa bất kỳ một lắp thêm gì bởi từ khóa delete, mặc dù xóa được hay là không nó cũng ko báo lỗi. Tuy vậy khi sử dụng cơ chế strict mode thì các thứ bắt buộc xóa được nó vẫn báo lỗi ngay.

Xem thêm: 5 Phần Mềm Tăng Tốc Game, Tăng Fps, Giảm Giật Lag Tốt Nhất Hiện Nay

function getMyName (name) console.log(name)delete getMyName;//không gồm gì xảy ra tuy nhiên delete ko xóa được hàm-Chế độ strict mode:

"use strict"function getMyName (name) console.log(name)delete getMyName;//Uncaught SyntaxError: Delete of an unqualified identifier in strict mode.

Các tham số của hàm không được trùng nhau

-Nếu như chế độ thường chúng ta có thể khai báo các tham số truyền vào hàm được phép trùng nhau thì lúc này khi sử dụng chính sách strict mode thì nó đã báo lỗi ngay lập tức lập tức.

-Chế độ thường:

function getProfile (name, name, age) //code//chạy bình thường.-Chế độ strict mode:"use strict"

function getProfile (name, name, age) //code//Uncaught SyntaxError: Duplicate parameter name not allowed in this context

Không được cho phép khai báo đổi thay dưới dạng hệ nhị phân.

-Các số khai báo bên dưới dạng nhị phân hoặc có tiền tố prefix 0 đằng trước thì sẽ không được chấp nhận

-Chế độ thường:

var num = 010100101010101;-Chế độ strict mode:

var num = 01010;//Uncaught SyntaxError: Octal literals are not allowed in strict mode

Không được phép ghi đè lên thuộc tính chỉ được phép đọc.

-Chế độ thường:

var obj = ;Object.defineProperty(obj, "ver", value: 1, writable: false);obj.ver = 10;//không có gì xảy ra-Chế độ strict mode:

"use strict"var obj = ;Object.defineProperty(obj, "ver", value: 1, writable: false);obj.ver = 10;---------Uncaught TypeError: Cannot assign to read only property "ver" of object "#" at data.php:14

Không sử dụng được with

-Chế độ thường:

var bar = 1;var foo = 2;with (bar) console.log(foo);//2-Chế độ strict mode:

"use strict"var bar = 1;var foo = 2;with (bar) console.log(foo);//Uncaught SyntaxError: Strict mode code may not include a with statement

Không có thể chấp nhận được khai báo trở thành trong eval

-Vì lý do bảo mật nên những khi sử dụng strict mode thì các bạn sẽ không thể nào hoàn toàn có thể khai báo được biến bên phía trong nó nữa.

"use strict"eval ("var x = 4");console.log(x);//Uncaught ReferenceError: x is not defined

Không chấp nhận khai báo những keyword

-Ở cơ chế strict mode thì các bạn sẽ không áp dụng được các từ khóa sau nhằm khai báo làm cho tên biến, hằng,...

Xem thêm: Tìm Hiểu Thông Tin Và Công Dụng Của Thẻ Vcoin Là Gì ? Dùng Để Làm Gì?

implementsinterfaceletpackageprivateprotectedpublicstaticyieldargumentsKết luận

Trên đó là một số lỗi thường gặp phải khi chúng ta sử dụng JavaScript sống strict mode. Nói vậy, không có nghĩa là tôi khuyên bạn tránh sử dụng strict mode. Ngược lại, cơ chế này góp bạn thuận tiện phát hiện lỗi. Và đây là sự bảo đảm an toàn cho code bạn không bị xung chợt với hầu như phiên phiên bản JavaScript mới hơn sau này.