JavaScript Palabras reservadas
En JavaScript, algunos identificadores son palabras reservadas y no pueden usarse como nombres de variables o funciones.
Estándar de JavaScript
Todos los navegadores modernos son totalmente compatibles con ECMAScript 3 (ES3, la tercera versión de JavaScript, desde 1999).
ECMAScript 4 (ES4) no se aprobó.
ECMAScript 5 (ES5, publicado en 2009).
ECMAScript 6 (ES6, publicado en 2015) es la versión oficial más reciente de JavaScript.
Con el tiempo, hemos comenzado a ver que todos los navegadores modernos ya son totalmente compatibles con ES6.
Palabras reservadas de JavaScript
Las palabras reservadas de JavaScript no se pueden usar como nombres de variables, etiquetas o funciones. Algunas palabras reservadas se utilizan para futuras extensiones de JavaScript.
| 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 |
Las palabras clave marcadas con * son las añadidas en ECMAScript5.
Objetos, propiedades y métodos de JavaScript
También debe evitar usar nombres de objetos, propiedades y métodos incorporados de JavaScript como nombres de variables o funciones de Javascript:
| Array | Date | eval | function | hasOwnProperty |
| Infinity | isFinite | isNaN | isPrototypeOf | length |
| Math | NaN | name | Number | Object |
| prototype | String | toString | undefined | valueOf |
Palabras reservadas de Java
JavaScript se usa a menudo junto con Java. Debe evitar usar algunos objetos y propiedades de Java como identificadores de JavaScript:
| getClass | java | JavaArray | javaClass | JavaObject | JavaPackage |
Palabras reservadas de Window
JavaScript se puede usar fuera de HTML. Se puede utilizar como lenguaje de programación en muchas otras aplicaciones.
En HTML, debe (y por portabilidad, también debería) evitar usar nombres de objetos y propiedades de HTML y Window como nombres de variables y funciones de Javascript:
| 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 |
Manejadores de eventos HTML
Además, también debe evitar usar los nombres de los manejadores de eventos HTML como nombres de variables y funciones de Javascript.
Ejemplo:
| onblur | onclick | onerror | onfocus |
| onkeydown | onkeypress | onkeyup | onmouseover |
| onload | onmouseup | onmousedown | onsubmit |
Otras extensiones