Strict mode trong JavaScript là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
4.889 lượt xem

Use strict dịch sang tiếng việt thì có nghĩa là sử dụng sự nghiêm ngặt. Khi một đoạn lệnh được khai báo use strict thì tất cả các dòng code ở phía dưới dòng khai báo use strict sẽ được quản lý một cách nghiêm ngặt hơn về cú pháp.

Khi sử dụng strict mode bạn sẽ không thể làm được những điều sau nữa:

Gán giá trị cho biến chưa được khai báo

"use strict"
variable = "hellopeople";
console.log(variable);

//Uncaught ReferenceError: variable is not defined

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

"use strict"
function getName (name)
{
    alert(name)
}
delete getName;
//Uncaught SyntaxError: Delete of an unqualified 
//identifier in strict mode.

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

"use strict"
function getName (name, name, age)
{
    //code
}
//Uncaught SyntaxError: Duplicate parameter name not allowed in this context

Không cho phép khai báo biến dưới dạng hệ nhị phân

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

"use strict"
var obj = {};
Object.defineProperty(obj, 'ver', {value: 1, writable: false});
obj.ver = 10;

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

"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 cho phép khai báo biến trong eval

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

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

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

  • implements

  • interface

  • let

  • package

  • private

  • protected

  • public

  • static

  • yield

  • arguments

{{login.error}}