Reserved words in JavaScript
Hieronder staat een overzicht van de reserved words in JavaScript, die niet als naam van een variabele kunnen optreden.
Daarna volgt een overzicht van andere namen (identifiers) die in JavaScript een betekenis hebben en die -dus- voor
verwarring kunnen zorgen.
Voor een uitgebreide beschrijving van deze dingen verwijs ik naar de boeken over JavaScript.
abstract | arguments | await | boolean | break |
byte | case | catch | char | class |
const | continue | debugger | default | delete |
do | double | else | enum | eval |
export | extends | false | final | finally |
float | for | function | goto | if |
implements | import | in | instanceof | int |
interface | let | long | native | new |
null | package | private | protected | public |
return | short | static | super | switch |
synchronized | this | throw | throws | transient |
true | try | typeof | var | void |
volatile | while | with | yield |
Een aantal van bovenstaande namen is uit de standaarden verdwenen, maar je moet ze zeker niet gebruiken, om conflicten met oudere JavaScripts te vermijden. Het gaat om:
abstract | boolean | byte | char | double |
final | float | goto | int | long |
native | short | synchronized | throws | transient |
volatile |
Andere namen die je moet vermijden
Behalve de reserved words, die je niet mag gebruiken, is er een aantal namen die je beter kunt vermijden. Dat zijn:
- Namen JavaScript-objecten en hun eigenschappen en methodes, zoals daar zijn:
Array isFinite name parseInt unescape Date isNaN NaN prototype valueOf escape isPrototypeOf Number String hasOwnProperty length Object toString Infinity Math parseFloat undefined - Reserved words van de programmeertaal Java. JavaScript werd vroeger vaak gebruikt in combinatie met Java. Daarom is het
(nu nog) beter om de namen van Java-objecten, hun eigenschappen en methodes niet als JavaScript-variabele te gebruiken:
getClass JavaArray JavaObject java javaClass JavaPackage - Namen die worden gebruikt door het HTML-object en het Windows-object, hun eigenschappen en methodes. Vermijd daarom als
variabele-naam:
alert element layers radio all elements link reset anchor embed location screenX anchors embeds mimeTypes screenY area encodeURI navigate scroll assign encodeURIComponent navigator secure blur event offscreenBuffering select button fileUpload open self checkbox focus opener setInterval clearInterval form option setTimeout clearTimeout forms outerHeight status clientInformation frame outerWidth submit close frameRate packages taint closed frames pageXOffset text confirm hidden pageYOffset textarea constructor history parent top crypto image password untaint decodeURI images plugin window decodeURIComponent innerHeight pkcs11 defaultStatus innerWidth prompt document layer propertyIsEnum
N.B. Deze lijsten zijn niet uitputtend. Je kunt nog meer namen tegenkomen die je niet kunt, of zou moeten gebruiken, als naam voor een variabele of function.
Tenslotte: vermijd ook namen van variabelen die beginnen met 'on', zoals in onMouseOver. Kijk ook uit met namen die in de toekomst mogelijk zouden kunnen worden ingebouwd, of namen die vroeger bestonden, zoals: netscape, sun, toFixed, toExponential, toPrecision.
Tenslotte
De JavaScript-standaarden worden jaarlijks verbeterd en aangepast. Dit verhaal zal dus door de tijd worden ingehaald.
Opmerking:
Zie ook het item Over JavaScript, ECMA-script, ES5 en ES6.