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 window
thà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;
}
eval
cho 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:
break
case
catch
class
const
continue
debugger
default
delete
do
else
enum
export
extend
false
finally
for
function
if
implements
import
in
instanceof
interface
let
new
null
package
private
protected
public
return
static
super
switch
this
throw
true
try
typeof
var
void
while
with
yield
Câ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 alert
khi 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.