Yanıtlar:
Sadece en iyi google hit değil, gerçek bilgi kaynaklarına bağlantı vermeliyiz.
http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Reserved_Words
JScript 8.0: http://msdn.microsoft.com/tr-tr/library/ttyab5c8.aspx
JavaScript'teki tüm ayrılmış anahtar kelimeleri içeren ve şu anda dürüst kalanlara adanmış ve sadece puanlamaya çalışmayan şiirim:
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.
Benc'in cevabını tamamlamak için , bkz. Standart ECMA-262 . Bunlar resmi rezerve edilmiş kelimelerdir, ancak standarda uymak için uygulamayı sadece bilgiç görmezden gelir. En popüler uygulamaların, yani firefox ve internet explorer'ın ayrılmış sözcükleri için benc'in cevabına bakın.
EMCAScript-262 ayrılmış kelimeler Anahtar s, Geleceğin ayrılmış bir kelime s, NullLiteral ve BooleanLiteral s, Anahtar olan
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
Gelecek Ayrılmış Kelime ler vardır
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
NullLiteral olduğunu
null
ve BooleanLiteral s
true
false
let
burada ama docu görüyorum: ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
Ben sadece JavaScript & jQuery bu konuda okuyordum : Eksik Kılavuz :
Bu ayrılmış kelimelerin tümü tüm tarayıcılarda sorunlara neden olmaz, ancak değişkenleri adlandırırken bu adlardan uzak durmak en iyisidir.
JavaScript anahtar kelimeler:
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
.Gelecek kullanım için ayrılmış:
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
.Tarayıcıda küresel değişkenleri önceden tanımlanmış:
alert, blur, closed, document, focus, frames, history, innerHeight, innerWidth, length, location, navigator, open, outerHeight, outerWidth, parent, screen, screenX, screenY, statusbar, window
.
alert
zaten başlatılmış, ancak hiçbir şey yeniden atamanızı engellemiyor alert = 5
. Ancak, window
5 olarak ayarlayamazsınız , ancak yerel değişken olarak kullanabilirsiniz. Yani saklıdır anahtar kelimeler, ileride kullanmak mümkün olmayacak, null
, false
, true
.
Burada, belirli bir dizenin JavaScript motoru tarafından anahtar kelime olarak ele alınıp alınmadığını belirlemenin bir tarayıcı ve dil sürümü agnostik yolu. Çözümün çekirdeğini sağlayan bu cevaba verilen krediler .
function isReservedKeyword(wordToCheck) {
var reservedWord = false;
if (/^[a-z]+$/.test(wordToCheck)) {
try {
eval('var ' + wordToCheck + ' = 1');
} catch (error) {
reservedWord = true;
}
}
return reservedWord;
}
eval
şey için kullanmanız gerekiyorsa, büyük olasılıkla yanlış yaptığınız anlamına gelir.
Mevcut cevapların hiçbiri, ES-Dialect ne olursa olsun, tarayıcıların ES'nin belirlediği şeylerin üstünde kendi ayrılmış anahtar kelime, yöntem vb.
Örneğin, IE9 gibi mantıksal isimlerin kullanılmasına izin vermemektedir: addFilter
,removeFilter
(bunlar, diğerlerinin yanı sıra, yöntem muhafaza edilmiştir).
IE9'a özgü daha kapsamlı 'şu anda bilinen' bir liste için http://www.jabcreations.com/blog/internet-explorer-9 adresine bakın . Henüz msdn'de (veya başka bir yerde) herhangi bir resmi referans bulmadım.
Eloquent JavaScript kitabından bir liste:
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
benc'in cevabı mükemmel, ancak iki sentim için w3schools'un bu sayfadaki sayfasını beğeniyorum:
http://www.w3schools.com/js/js_reserved.asp
Standart tarafından ayrılan anahtar kelimeleri listelemenin yanı sıra , belirli bağlamlarda kaçınmanız gereken uzun bir anahtar kelime listesi de vardır ; örneğin, alert
bir tarayıcıda çalıştırılacak kodu yazarken adı kullanmamak . Anahtar kelimeler olmadığını bilsem bile editörümde belirli kelimelerin neden anahtar kelime olarak vurgulandığını anlamama yardımcı oldu.