Câu trả lời:
Chúng ta nên liên kết với các nguồn thông tin thực tế, thay vì chỉ là lượt truy cập hàng đầu của google.
http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Reserved_emme
JScript 8.0: http://msdn.microsoft.com/en-us/l Library / ttyab5c8.aspx
Đây là bài thơ của tôi, bao gồm tất cả các từ khóa dành riêng trong JavaScript và dành riêng cho những người trung thực trong thời điểm này, và không chỉ cố gắng ghi điểm:
Let this long package float,
Goto private class if short.
While protected with debugger case,
Continue volatile interface.
Instanceof super synchronized throw,
Extends final export throws.
Try import double enum?
- False, boolean, abstract function,
Implements typeof transient break!
Void static, default do,
Switch int native new.
Else, delete null public var
In return for const, true, char
…Finally catch byte.
Để bổ sung câu trả lời của benc , xem Tiêu chuẩn ECMA-262 . Đây là những từ dành riêng chính thức, nhưng chỉ có một người bán hàng bỏ qua việc thực hiện để tôn trọng tiêu chuẩn. Đối với các từ dành riêng của các triển khai phổ biến nhất, đó là firefox và internet explorer, xem câu trả lời của benc.
Các từ dành riêng trong EMCAScript-262 là Từ khóa , Từ dành riêng trong tương lai , NullLiteral và BooleanLiteral , trong đó Từ khóa là
break do instanceof typeof
case else new var
catch finally return void
continue for switch while
debugger function this with
default if throw
delete in try
các từ dành riêng trong tương lai là
abstract export interface static
boolean extends long super
byte final native synchronized
char float package throws
class goto private transient
const implements protected volatile
double import public
enum int short
các NullLiteral là
null
và BooleanLiteral là
true
false
letở đây, nhưng tôi nhìn thấy nó trong docu: ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
Tôi mới đọc về điều này trong JavaScript & jQuery: Hướng dẫn thiếu :
Không phải tất cả các từ dành riêng này sẽ gây ra sự cố trong tất cả các trình duyệt, nhưng tốt nhất là tránh xa các tên này khi đặt tên biến.
Từ khóa JavaScript :
break, case, catch, continue, debugger, default, delete, do, else, false, finally, for, function, if, in, instanceof, new, null, return, switch, this, throw, true, try, typeof, var, void, while, with.Dành cho sử dụng trong tương lai :
abstract, boolean, byte, char, class, const, double, enum, export, extends, final, float, goto, implements, import, int, interface, let, long, native, package, private, protected, public, short, static, super, synchronized, throws, transient, volatile, yield.Các biến toàn cục được xác định trước trong trình duyệt :
alert, blur, closed, document, focus, frames, history, innerHeight, innerWidth, length, location, navigator, open, outerHeight, outerWidth, parent, screen, screenX, screenY, statusbar, window.
alertđã được khởi tạo, nhưng không có gì ngăn bạn gán lại alert = 5. Tuy nhiên, bạn không thể đặt windowthành 5, nhưng bạn có thể sử dụng nó làm biến cục bộ. Đó là không thể với các từ khóa dành riêng, sử dụng trong tương lai, null, false, true.
Dưới đây là một cách thức bất khả tri của trình duyệt và phiên bản ngôn ngữ để xác định xem một chuỗi cụ thể có được xử lý như một từ khóa của công cụ JavaScript hay không. Tín dụng cho câu trả lời này cung cấp cốt lõi của giải pháp.
function isReservedKeyword(wordToCheck) {
var reservedWord = false;
if (/^[a-z]+$/.test(wordToCheck)) {
try {
eval('var ' + wordToCheck + ' = 1');
} catch (error) {
reservedWord = true;
}
}
return reservedWord;
}
evalcho bất cứ điều gì, rất có thể có nghĩa là bạn đang làm sai.
Không có câu trả lời nào hiện tại cảnh báo rằng bất kể ES-Dialect, các trình duyệt có xu hướng có danh sách từ khóa dành riêng, phương thức, v.v. trên đầu trang của ES.
Ví dụ: IE9 cấm sử dụng các tên logic như : addFilter, removeFilter(chúng, trong số các phương thức khác, là các phương thức dành riêng).
Xem http://www.jabcreations.com/blog/iNET-explorer-9 để biết danh sách 'hiện được biết đến' rộng rãi hơn dành riêng cho IE9. Tôi chưa tìm thấy bất kỳ tài liệu tham khảo chính thức nào cho họ trên msdn (hoặc ở nơi khác).
Đây là danh sách từ cuốn sách Eloquent JavaScript:
breakcasecatchclassconstcontinuedebuggerdefaultdeletedoelseenumexportextendfalsefinallyforfunctionifimplementsimportininstanceofinterfaceletnewnullpackageprivateprotectedpublicreturnstaticsuperswitchthisthrowtruetrytypeofvarvoidwhilewithyieldCâu trả lời của benc là tuyệt vời, nhưng với hai xu của tôi, tôi thích trang w3schools về điều này:
http://www.w3schools.com/js/js_reserved.asp
Ngoài việc liệt kê các từ khóa được bảo lưu theo tiêu chuẩn, nó còn có một danh sách dài các từ khóa bạn nên tránh trong các bối cảnh nhất định; ví dụ, không sử dụng tên alertkhi viết mã để chạy trong trình duyệt. Nó giúp tôi tìm ra lý do tại sao một số từ nhất định được làm nổi bật là từ khóa trong trình chỉnh sửa của tôi mặc dù tôi biết chúng không phải là từ khóa.