Convenciones de nombres en JavaScript: Variables, funciones, clases y más

6 min de lectura

Las convenciones de nombres de JavaScript no son impuestas por el lenguaje, pero se siguen universalmente en el ecosistema. Esta guía cubre lo que todo desarrollador JavaScript y TypeScript debería saber.

Variables y funciones: camelCase

Variables, funciones y nombres de métodos usan camelCase — la primera palabra en minúscula, las siguientes con mayúscula inicial:

const userName = "Alice";
let totalPrice = 0;

function getUserById(id) { /* ... */ }
const calculateShipping = (weight) => weight * 2.5;

Clases y componentes: PascalCase

Clases, componentes React y funciones constructoras usan PascalCase:

class UserAccount { /* ... */ }
class HttpClient { /* ... */ }

// Componentes React
function UserProfile({ name }) { /* ... */ }
const ShoppingCart = () => { /* ... */ };

Constantes: SCREAMING_SNAKE_CASE

Las constantes verdaderas — valores que nunca cambian y se conocen en tiempo de compilación — usan mayúsculas con guiones bajos:

const MAX_RETRY_COUNT = 3;
const API_BASE_URL = "https://api.example.com";
const DEFAULT_PAGE_SIZE = 20;

Nota: no toda variable const es una "constante" en este sentido. const user = getUser() es una variable normal — usa camelCase.

Variables booleanas

Prefija los booleanos con is, has, can, should para mayor claridad:

const isLoading = true;
const hasPermission = false;
const canEdit = user.role === "admin";
const shouldRedirect = !isAuthenticated;

Campos privados

JavaScript moderno usa el prefijo # para campos de clase verdaderamente privados. La convención antigua con guion bajo (_name) sigue siendo común en librerías:

class User {
  #password;
  constructor(name, password) {
    this.name = name;
    this.#password = password;
  }
}

Nombres de archivo

TipoConvenciónEjemplo
Componente ReactPascalCaseUserProfile.tsx
Módulo de utilidadescamelCasedateUtils.ts
Archivo de configkebab-caseeslint-config.js
Archivo de testIgual que el fuenteUserProfile.test.tsx
Módulo CSSPascalCase o kebabUserProfile.module.css

Especificidades de TypeScript

  • Interfaces: PascalCase, sin prefijo I. UserProps, no IUserProps.
  • Type aliases: PascalCase. type ApiResponse = { ... }
  • Enums: PascalCase para el enum y para los miembros. enum Color { Red, Green, Blue }
  • Genéricos: Una sola letra mayúscula. T, K, V

Event handlers en React

Prefija las funciones de manejo de eventos con handle, y los props con on:

// Props: onSubmit, onClick, onChange
// Handlers: handleSubmit, handleClick, handleChange
<Button onClick={handleSubmit} />

Convierte a convenciones JavaScript

¿Trabajas con una API Python que devuelve snake_case? Usa nuestro conversor camelCase para transformar las claves. ¿Necesitas nombrar un componente React? Prueba el conversor PascalCase. Compara todos los formatos en el hub de conversión.