JS: Palabras reservadas

En JavaScript existe un conjunto de palabras reservadas que forman parte de su sintaxis. Estas palabras tienen un significado especial: están destinadas a definir sus funcionalidades internas, por lo que no se pueden usar en la creación de nombres (identificadores) para variables, funciones y clases.

Una característica de las palabras reservadas es que siempre deben escribirse en minúsculas. Gracias a que JavaScript distingue entre mayúsculas y minúsculas, es posible usar versiones en mayúsculas y en diferentes combinaciones como nombres, ya que no se consideran la misma palabra reservada.

Por ejemplo, la palabra clave let se utiliza para declarar variables, por lo que forma parte de la sintaxis del lenguaje. Esto significa que no puede usarse como nombre. Así, el siguiente ejemplo es incorrecto:

let let = 2; // Error

En cambio, podríamos usar:

let LeT = 2; // Permitido

Aunque técnicamente se pueda, no es una buena práctica usar identificadores que solo difieran de palabras reservadas por el uso de mayúsculas. Esto puede generar confusión y disminuir la legibilidad del código.

En resumen: no se puede usar las palabras clave reservadas como identificador. Al hacerlo se obtiene errores en la salida del código. Tampoco se recomienda el uso de estas palabras usando mayúsculas para no generar confusión.

Lista de palabras clave reservadas:

Palabra Descripción
await Pausa la ejecución dentro de funciones async hasta que se resuelva una promesa.
break Sale inmediatamente de un bucle (for, while, switch).
case Define una condición dentro de una sentencia switch.
catch Captura y maneja errores en un bloque del tipo try.
class Declara una clase (plantilla de objetos).
const Declara una variable que no puede ser reasignada (constante).
continue Salta a la siguiente iteración de un bucle sin terminarlo.
debugger Pausa la ejecución del código en el depurador (si está activo).
default Bloque que se ejecuta en un switch si ningún case coincide.
delete Elimina una propiedad de un objeto.
do Ejecuta un bloque al menos una vez antes de comprobar la condición (do...while).
else Condición alternativa dentro de un if.
enum Reservada (no implementada en JS estándar, pero sí en TypeScript).
export Exporta funciones, variables o clases desde un módulo.
extends Permite que una clase herede de otra.
false Valor booleano del tipo falso.
finally Bloque que siempre se ejecuta tras try...catch.
for Inicia un bucle que se repite mientras se cumpla una condición.
function Declara una función.
if Evalúa una condición y ejecuta un bloque si se cumple.
import Importa funciones, variables o clases desde otro módulo.
in Comprueba si una propiedad existe en un objeto.
instanceof Verifica si un objeto es instancia de una clase.
new Crea una nueva instancia de un objeto o clase.
null Valor especial que representa “ausencia de valor”.
return Devuelve un valor desde una función.
super Llama al constructor o métodos de la clase padre.
switch Ejecuta distintos bloques según el valor evaluado.
this Referencia al objeto o contexto actual.
throw Lanza un error o excepción.
true Valor booleano del tipo verdadero.
try Bloque que contiene código que puede fallar.
typeof Devuelve el tipo de un valor (string, number, etc.).
var Declara una variable según la forma antigua (alcance de función).
void Evalúa una expresión y devuelve undefined.
while Ejecuta un bucle mientras la condición sea verdadera.
with Extiende temporalmente el alcance de un objeto (obsoleto).
yield Pausa o reanuda funciones generadoras, devolviendo valores paso a paso.

Estas palabras están reservadas cuando se trabaja en modo estricto:

Palabra Descripción
implements Palabra reservada pensada para futuras características de interfaces o clases. No está implementada en JS estándar.
interface Similar a interfaces en otros lenguajes; reservada para posible uso futuro, aunque sí existe en TypeScript.
let Declara variables con alcance de bloque.
package Reservada para posibles usos relacionados con módulos o paquetes. No está implementada en JS estándar.
private Reservada para indicar miembros privados de clases.
protected Reservada para posibles miembros protegidos en clases. No implementado en JS estándar.
public Reservada para indicar miembros públicos de clases. En JS estándar no se usa, pero en TypeScript sí.
static Define un método o propiedad estática en una clase (pertenece a la clase, no a la instancia).

Palabras reservadas para evitar conflictos futuros:

Palabra Descripción
abstract Apartada para un posible uso futuro en la definición de clases o estructuras.
boolean Reservada para representar en un futuro un valor lógico.
byte Prevista para un tipo de número entero pequeño.
char Destinada a identificar un carácter individual.
double Prevista para un tipo de número con mayor precisión.
final Podría usarse para limitar modificaciones en variables o clases.
float Prevista para un tipo de número en coma flotante.
goto Guardada para un posible mecanismo de control de flujo.
int Prevista para un tipo de número entero.
long Prevista para un número entero de mayor tamaño.
native Reservada para un uso relacionado con funciones internas o de bajo nivel.
short Prevista para un número entero más pequeño.
synchronized Podría emplearse en un futuro para coordinar ejecución o acceso a recursos.
throws Destinada a un sistema de manejo de errores.
transient Prevista para controlar la persistencia o el almacenamiento de datos.
volatile Guardada para un posible control especial del acceso a variables en ejecución.
← Artículo anterior
Artículo siguiente →