SyntaxError: "x" is a reserved identifier
Ngoại lệ JavaScript "biến is a reserved identifier" xảy ra khi các từ khóa dành riêng được sử dụng làm định danh.
Thông báo
SyntaxError: Unexpected reserved word (V8-based) SyntaxError: implements is a reserved identifier (Firefox) SyntaxError: Cannot use the reserved word 'implements' as a variable name. (Safari)
Loại lỗi
SyntaxError
Điều gì đã xảy ra?
Các từ khóa dành riêng sẽ gây ra lỗi nếu chúng được sử dụng làm định danh. Những từ khóa này bị dành riêng trong cả strict mode và sloppy mode:
enum
Những từ khóa sau chỉ bị dành riêng khi chúng xuất hiện trong code strict mode:
implementsinterfaceletpackageprivateprotectedpublicstatic
Ví dụ
>Các từ khóa dành riêng trong strict và non-strict mode
Định danh enum thường bị dành riêng.
js
const enum = { RED: 0, GREEN: 1, BLUE: 2 };
// SyntaxError: enum is a reserved identifier
Trong code strict mode, nhiều định danh hơn bị dành riêng.
js
"use strict";
const package = ["potatoes", "rice", "fries"];
// SyntaxError: package is a reserved identifier
Bạn cần đổi tên các biến này.
js
const colorEnum = { RED: 0, GREEN: 1, BLUE: 2 };
const list = ["potatoes", "rice", "fries"];
Cập nhật trình duyệt cũ hơn
Nếu bạn đang sử dụng trình duyệt cũ chưa triển khai
let hoặc
class,
bạn nên cập nhật lên phiên bản trình duyệt mới hơn có hỗ trợ các tính năng ngôn ngữ mới này.
js
"use strict";
class DocArchiver {}
// SyntaxError: class is a reserved identifier
// (chỉ xảy ra trong các trình duyệt cũ hơn, ví dụ: Firefox 44 và cũ hơn)