Apa kata kunci JavaScript (nama fungsi, variabel, dll) yang dicadangkan?
Apa kata kunci JavaScript (nama fungsi, variabel, dll) yang dicadangkan?
Jawaban:
Kita harus menautkan ke sumber info aktual, bukan hanya hit google teratas.
http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Reserved_Words
JScript 8.0: http://msdn.microsoft.com/en-us/library/ttyab5c8.aspx
Inilah puisi saya, yang mencakup semua kata kunci yang disediakan dalam JavaScript, dan didedikasikan untuk mereka yang tetap jujur saat ini, dan tidak hanya mencoba untuk membuat skor:
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.
Untuk melengkapi jawaban benc , lihat Standar ECMA-262 . Ini adalah kata-kata resmi yang dicadangkan, tetapi hanya pedant yang mengabaikan penerapannya untuk menghormati standar. Untuk kata-kata yang dilindungi dari implementasi yang paling populer, yaitu firefox dan internet explorer, lihat jawaban benc.
Kata-kata yang dicadangkan dalam EMCAScript-262 adalah Kata Kunci s, Future Reserved Word s, NullLiteral , dan BooleanLiteral s, di mana Kata Kunci berada
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
yang Future Reserved Firman s adalah
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
yang NullLiteral adalah
null
dan BooleanLiteral adalah
true
false
letdi sini, tetapi saya melihatnya di dokumen: ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
Saya baru saja membaca tentang ini di JavaScript & jQuery: The Missing Manual :
Tidak semua kata-kata yang dicadangkan ini akan menyebabkan masalah di semua browser, tetapi yang terbaik adalah menghindari nama-nama ini saat menamai variabel.
JavaScript kata kunci:
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.Dicadangkan untuk penggunaan masa depan:
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.Pra-didefinisikan variabel global dalam browser:
alert, blur, closed, document, focus, frames, history, innerHeight, innerWidth, length, location, navigator, open, outerHeight, outerWidth, parent, screen, screenX, screenY, statusbar, window.
alertsudah diinisialisasi, tetapi tidak ada yang menghentikan Anda untuk menetapkan kembali alert = 5. Namun, Anda tidak dapat mengatur windowke 5, tetapi Anda dapat menggunakannya sebagai variabel lokal. Itu tidak mungkin dengan kata kunci dicadangkan, penggunaan masa depan, null, false, true.
Berikut ini adalah cara agnostik versi browser dan bahasa untuk menentukan apakah string tertentu diperlakukan sebagai kata kunci oleh mesin JavaScript. Penghargaan untuk jawaban ini yang menyediakan inti dari solusi.
function isReservedKeyword(wordToCheck) {
var reservedWord = false;
if (/^[a-z]+$/.test(wordToCheck)) {
try {
eval('var ' + wordToCheck + ' = 1');
} catch (error) {
reservedWord = true;
}
}
return reservedWord;
}
evalapa pun, kemungkinan besar itu berarti Anda salah melakukannya.
Tidak satu pun dari jawaban saat ini yang memperingatkan bahwa terlepas dari ES-Dialek, peramban cenderung memiliki daftar kata kunci yang dicadangkan sendiri, metode dll. Di atas apa yang ditentukan ES.
Misalnya, IE9 melarang penggunaan nama logis seperti: addFilter, removeFilter(mereka, antara lain, metode dilindungi).
Lihat http://www.jabcreations.com/blog/internet-explorer-9 untuk daftar yang lebih luas 'saat ini dikenal' khusus untuk IE9. Saya belum menemukan referensi resmi kepada mereka di msdn (atau di tempat lain).
Berikut adalah daftar dari buku Eloquent JavaScript:
breakcasecatchclassconstcontinuedebuggerdefaultdeletedoelseenumexportextendfalsefinallyforfunctionifimplementsimportininstanceofinterfaceletnewnullpackageprivateprotectedpublicreturnstaticsuperswitchthisthrowtruetrytypeofvarvoidwhilewithyieldjawaban benc sangat bagus, tetapi untuk dua sen saya, saya suka halaman w3schools tentang ini:
http://www.w3schools.com/js/js_reserved.asp
Selain mencantumkan kata kunci yang dicadangkan oleh standar, ia juga memiliki daftar panjang kata kunci yang harus Anda hindari dalam konteks tertentu; misalnya, tidak menggunakan nama alertsaat menulis kode untuk dijalankan di browser. Itu membantu saya mengetahui mengapa kata-kata tertentu disorot sebagai kata kunci di editor saya meskipun saya tahu itu bukan kata kunci.