Зарезервированные слова в Javascript

В JavaScript нельзя использовать следующие зарезервированные слова в качестве имен переменных, функций или меток:

abstractargumentsawait*boolean
breakbytecasecatch
charclass*constcontinue
debuggerdefaultdeletedo
doubleelseenum*eval
export*extends*falsefinal
finallyfloatforfunction
gotoifimplementsimport*
ininstanceofintinterface
let*longnativenew
nullpackageprivateprotected
publicreturnshortstatic
super*switchsynchronizedthis
throwthrowstransienttrue
trytypeofvarvoid
volatilewhilewithyield

Слова, помеченные знаком *, новые в ECMAScript 5 и 6.

Удаленные зарезервированные слова

Следующие зарезервированные слова были удалены в стандарте ECMAScript 5/6:

abstractbooleanbytechar
doublefinalfloatgoto
intlongnativeshort
synchronizedthrowstransientvolatile

Не используйте эти слова в качестве переменных, так как стандарт ECMAScript 5/6 поддерживается не всеми браузерами.

Объекты, свойства и методы в JavaScript

Также следует избегать использования не по прямому назначению имен встроенных объектов, свойств и методов JavaScript:

ArrayDateevalfunction
hasOwnPropertyInfinityisFiniteisNaN
isPrototypeOflengthMathNaN
nameNumberObjectprototype
StringtoStringundefinedvalueOf

Зарезервированные слова Java

JavaScript часто используется вместе с Java. Поэтому также не следует использовать в качестве идентификаторов JavaScript некоторых объектов и свойств Java:

getClassjavaJavaArrayjavaClass
JavaObjectJavaPackage

Другие зарезервированные слова

JavaScript может использоваться в качестве языка программирования во многих приложениях. Вы также не должны использовать имена объектов и свойств HTML и Window:

alertallanchoranchors
areaassignblurbutton
checkboxclearIntervalclearTimeoutclientInformation
closeclosedconfirmconstructor
cryptodecodeURIdecodeURIComponentdefaultStatus
documentelementelementsembed
embedsencodeURIencodeURIComponentescape
eventfileUploadfocusform
formsframeinnerHeightinnerWidth
layerlayerslinklocation
mimeTypesnavigatenavigatorframes
frameRatehiddenhistoryimage
imagesoffscreenBufferingopenopener
optionouterHeightouterWidthpackages
pageXOffsetpageYOffsetparentparseFloat
parseIntpasswordpkcs11plugin
promptpropertyIsEnumradioreset
screenXscreenYscrollsecure
selectselfsetIntervalsetTimeout
statussubmittainttext
textareatopunescapeuntaint
window

Обработчики событий HTML

В дополнение ко всему вышесказанному следует избегать использования имен всех обработчиков событий HTML.

Например:

onbluronclickonerroronfocus
onkeydownonkeypressonkeyuponmouseover
onloadonmouseuponmousedownonsubmit