En JavaScript, certains identificateurs sont des mots réservés et ne peuvent pas être utilisés comme variables ou les noms de fonctions.
normes JavaScript
ECMAScript 3 (ES3) a été publié en Décembre de 1999.
ECMAScript 4 (ES4) a été abandonnée.
ECMAScript 5 (ES5) a été publié en Décembre 2009.
ECMAScript 6 (ES6) a été publié en Juin 2015, et est la dernière version officielle de JavaScript.
Le temps passe, et nous commençons maintenant à voir un support complet pour ES5 / ES6 dans tous les navigateurs modernes.
Mots JavaScript réservés
Dans JavaScript, vous ne pouvez pas utiliser ces mots réservés en tant que variables, des étiquettes ou des noms de fonction:
abstract | arguments | 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 |
Les mots marqués d' un * sont nouveaux dans ECMAScript5
JavaScript objets, propriétés et méthodes
Vous devez également éviter d'utiliser le nom d'objets JavaScript intégrés, propriétés et méthodes:
Array | Date | eval | function | hasOwnProperty |
Infinity | isFinite | isNaN | isPrototypeOf | length |
Math | NaN | name | Number | Object |
prototype | String | toString | undefined | valueOf |
Mots Java réservés
JavaScript est souvent utilisé conjointement avec Java. Vous devriez éviter d'utiliser certains objets Java et des propriétés comme identifiants JavaScript:
getClass | java | JavaArray | javaClass | JavaObject | JavaPackage |
Mots de Windows réservés
JavaScript peut être utilisé en dehors HTML. Il peut être utilisé comme langage de programmation dans de nombreuses autres applications.
En HTML, vous devez (pour la portabilité, vous devriez) éviter d'utiliser le nom des objets et des propriétés HTML et Windows:
alert | all | anchor | anchors | area |
assign | blur | button | checkbox | clearInterval |
clearTimeout | clientInformation | close | closed | confirm |
constructor | crypto | decodeURI | decodeURIComponent | defaultStatus |
document | element | elements | embed | embeds |
encodeURI | encodeURIComponent | escape | event | fileUpload |
focus | form | forms | frame | innerHeight |
innerWidth | layer | layers | link | location |
mimeTypes | navigate | navigator | frames | frameRate |
hidden | history | image | images | offscreenBuffering |
open | opener | option | outerHeight | outerWidth |
packages | pageXOffset | pageYOffset | parent | parseFloat |
parseInt | password | pkcs11 | plugin | prompt |
propertyIsEnum | radio | reset | screenX | screenY |
scroll | secure | select | self | setInterval |
setTimeout | status | submit | taint | text |
textarea | top | unescape | untaint | window |
HTML gestionnaires d'événements
En outre, vous devriez éviter d'utiliser le nom de tous les gestionnaires d'événements de HTML.
Exemples:
onblur | onclick | onerror | onfocus |
onkeydown | onkeypress | onkeyup | onmouseover |
onload | onmouseup | onmousedown | onsubmit |