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
let
di 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
.
alert
sudah diinisialisasi, tetapi tidak ada yang menghentikan Anda untuk menetapkan kembali alert = 5
. Namun, Anda tidak dapat mengatur window
ke 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;
}
eval
apa 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:
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
jawaban 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 alert
saat 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.