En JavaScript, algunos identificadores son palabras reservadas y no se pueden utilizar como variables o nombres de función.
Normas de JavaScript
ECMAScript 3 (ES3) fue lanzado en diciembre de 1999.
ECMAScript 4 (ES4) fue abandonado.
ECMAScript 5 (ES5) fue lanzado en diciembre de 2009.
ECMAScript 6 (ES6) fue lanzado en junio de 2015, y es la última versión oficial de JavaScript.
El tiempo pasa, y ahora estamos empezando a ver un soporte completo para ES5 / ES6 en todos los navegadores modernos.
Palabras JavaScript Reservados
En JavaScript no puede utilizar estas palabras reservadas como variables, etiquetas o nombres de las funciones:
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 marcadas con * son nuevos en ECMAScript5
JavaScript objetos, propiedades y métodos
También debe evitar usar el nombre de JavaScript incorporadas objetos, propiedades y métodos:
Array | Date | eval | function | hasOwnProperty |
Infinity | isFinite | isNaN | isPrototypeOf | length |
Math | NaN | name | Number | Object |
prototype | String | toString | undefined | valueOf |
Las palabras reservadas de Java
JavaScript se utiliza a menudo junto con Java. Usted debe evitar el uso de algunos objetos Java y propiedades como identificadores de JavaScript:
getClass | java | JavaArray | javaClass | JavaObject | JavaPackage |
Palabras ventanas Reservados
JavaScript puede ser utilizado fuera de HTML. Se puede utilizar como el lenguaje de programación en muchas otras aplicaciones.
En HTML debe (para la portabilidad debe) evitar el uso del nombre de los objetos y propiedades de HTML y 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 controladores de eventos
Además se debe evitar el uso del nombre de todos los controladores de eventos de HTML.
Ejemplos:
onblur | onclick | onerror | onfocus |
onkeydown | onkeypress | onkeyup | onmouseover |
onload | onmouseup | onmousedown | onsubmit |