Skip to content

Cheat Sheet de JavaScript

Última verificación mayo 2026 — corre en tu navegador
Cheatsheet de JavaScript
const x = 10

Constante con ámbito de bloque

Variables
let y = 20

Variable con ámbito de bloque

Variables
typeof x

Obtener tipo como cadena

Variables
const { a, b } = obj

Desestructuración de objeto

Variables
const [a, b] = arr

Desestructuración de array

Variables
const merged = { ...obj1, ...obj2 }

Spread/fusionar objetos

Variables
const copy = [...arr]

Spread/copiar array

Variables
x ?? fallback

Coalescencia nula (solo null/undefined)

Variables
obj?.prop?.nested

Encadenamiento opcional

Variables
[1, 2, 3]

Crear un array

Arrays
arr.push(item)

Añadir elemento al final

Arrays
arr.pop()

Eliminar y devolver último elemento

Arrays
arr.shift() / arr.unshift(item)

Eliminar primero / añadir al inicio

Arrays
arr.map(x => x * 2)

Transformar cada elemento

Arrays
arr.filter(x => x > 0)

Filtrar elementos por condición

Arrays
arr.reduce((acc, x) => acc + x, 0)

Reducir a un solo valor

Arrays
arr.find(x => x.id === 1)

Encontrar primer elemento coincidente

Arrays
arr.findIndex(x => x > 5)

Índice de la primera coincidencia

Arrays
arr.some(x => x > 0)

Comprobar si algún elemento coincide

Arrays
arr.every(x => x > 0)

Comprobar si todos los elementos coinciden

Arrays
arr.includes(item)

Comprobar si el elemento existe

Arrays
arr.flat(Infinity)

Aplanar arrays anidados

Arrays
arr.sort((a, b) => a - b)

Ordenar numéricamente ascendente

Arrays
arr.slice(1, 3)

Obtener subarray (sin mutar)

Arrays
arr.splice(1, 2, ...items)

Eliminar/insertar en índice (mutando)

Arrays
[...new Set(arr)]

Eliminar duplicados

Arrays
Array.from({ length: 5 }, (_, i) => i)

Crear array desde rango

Arrays
const obj = { key: "value" }

Crear un objeto

Objetos
Object.keys(obj)

Obtener array de claves

Objetos
Object.values(obj)

Obtener array de valores

Objetos
Object.entries(obj)

Obtener array de pares [clave, valor]

Objetos
Object.assign({}, obj1, obj2)

Fusionar objetos (superficial)

Objetos
structuredClone(obj)

Clonar objeto en profundidad

Objetos
Object.freeze(obj)

Hacer objeto inmutable (superficial)

Objetos
"key" in obj

Comprobar si la clave existe

Objetos
delete obj.key

Eliminar una propiedad

Objetos
const { unwanted, ...rest } = obj

Omitir clave vía desestructuración

Objetos
function fn(x) { return x }

Declaración de función

Funciones
const fn = (x) => x * 2

Función flecha

Funciones
const fn = (x = 10) => x

Parámetro por defecto

Funciones
const fn = (...args) => args

Parámetros rest

Funciones
fn(1, ...arr)

Argumentos spread

Funciones
setTimeout(fn, 1000)

Retrasar ejecución por ms

Funciones
setInterval(fn, 1000)

Repetir ejecución cada ms

Funciones
function* gen() { yield 1 }

Función generadora

Funciones
async function fn() { const res = await fetch(url); return res.json(); }

Función async/await

Promesas
fetch(url).then(r => r.json())

Fetch con cadena .then()

Promesas
Promise.all([p1, p2])

Esperar todas las promesas

Promesas
Promise.race([p1, p2])

Primera promesa en resolverse/rechazarse

Promesas
Promise.allSettled([p1, p2])

Esperar todas (resueltas o rechazadas)

Promesas
new Promise((resolve, reject) => { ... })

Crear una nueva promesa

Promesas
try { await fn(); } catch (e) { console.error(e); }

Manejo de errores asíncrono

Promesas
`Hello ${name}`

Plantilla literal

Cadenas
s.includes("sub")

Comprobar si existe subcadena

Cadenas
s.startsWith("pre") / s.endsWith("suf")

Comprobar inicio/final

Cadenas
s.split(",")

Dividir en array

Cadenas
s.trim()

Eliminar espacios de ambos extremos

Cadenas
s.replace(/regex/g, "new")

Reemplazar con regex (global)

Cadenas
s.padStart(5, "0")

Rellenar inicio hasta longitud

Cadenas
s.repeat(3)

Repetir cadena N veces

Cadenas
s.match(/pattern/g)

Encontrar todas las coincidencias regex

Cadenas
s.at(-1)

Obtener último carácter

Cadenas
document.querySelector(".class")

Seleccionar primer elemento coincidente

DOM
document.querySelectorAll("div")

Seleccionar todos los elementos coincidentes

DOM
el.addEventListener("click", fn)

Añadir escuchador de eventos

DOM
el.classList.add("active")

Añadir clase CSS

DOM
el.classList.toggle("hidden")

Alternar clase CSS

DOM
el.textContent = "text"

Establecer contenido de texto (seguro)

DOM
el.setAttribute("data-id", "5")

Establecer atributo HTML

DOM
el.style.color = "red"

Establecer estilo en línea

DOM
el.remove()

Eliminar elemento del DOM

DOM
const m = new Map()

Crear un Map (cualquier tipo de clave)

ES6+
const s = new Set([1, 2, 3])

Crear un Set (valores únicos)

ES6+
for (const [k, v] of map) {}

Iterar sobre entradas de Map

ES6+
for (const item of iterable) {}

Bucle for...of

ES6+
Symbol("desc")

Crear símbolo único

ES6+
import { fn } from "./module.js"

Importación de módulo ES

ES6+
export default fn

Exportación por defecto

ES6+
const proxy = new Proxy(target, handler)

Crear un Proxy

ES6+
Mostrando 79 de 79 fragmentos

Cheat Sheet de JavaScript — Chuleta JS de referencia y sintaxis

JavaScript aterrizó en Netscape Navigator en 1995, escrito en 10 días como capa de scripting para el navegador, y desde entonces ha acumulado módulos, clases, arrow functions, async/await y optional chaining, pero las reglas originales de igualdad, el `this` y el único tipo numérico siguen ahí debajo. La chuleta de abajo cubre más de 75 fragmentos entre variables, arrays, objetos, funciones, promesas, cadenas, DOM y ES6+. La mayoría de los líos en código real no vienen de olvidar la sintaxis. Vienen de rarezas que parecen normales pero muerden. `==` aplica coerción de tipos y devuelve `true` para `0 == ""` sin avisar, motivo por el que los linters obligan a usar `===`. La palabra `this` dentro de un callback regular apunta al objeto global o a `undefined` en strict mode, no a la instancia de alrededor; las arrow functions arreglan eso. `0.1 + 0.2` devuelve `0.30000000000000004` porque el punto flotante es binario, no decimal. Estos son los fragmentos que se acaban consultando al depurar precisamente eso: la comparación estricta, el callback flecha, el destructuring que descarta una clave.

Trampas habituales en JavaScript

Hay un puñado de patrones que merecen estar en la primera pantalla de cualquier archivo JavaScript. `const` y `let` desplazan a `var` porque respetan el alcance de bloque y no se elevan como `undefined`, un hábito que evita categorías enteras de bugs. El optional chaining `obj?.prop?.nested` corta el paso al toparse con `null` o `undefined` en vez de lanzar error, y casa naturalmente con el operador de coalescencia nula `??`, que solo recurre al fallback ante `null`/`undefined` (no ante `0` ni `""`). `structuredClone(obj)` clona en profundidad sin el rodeo por JSON que pierde fechas, regex y Maps. Y `Array.from({ length: n }, (_, i) => i)` es la forma más limpia de construir un rango numérico sin bucle `for`. Los errores asíncronos piden un `try/catch` envolviendo el `await`, no un `.catch()` colgando del final; las trazas de pila salen mucho más útiles. La chuleta agrupa todo esto en variables, arrays, objetos, funciones, promesas, cadenas, DOM y ES6+, así la sección correcta queda a un clic.

  • Más de 75 fragmentos prácticos de JavaScript
  • 9 categorías incluyendo DOM y ES6+
  • Búsqueda en código y descripciones
  • Filtrar por categoría
  • Copia al portapapeles con un clic
  • Cubre funcionalidades modernas ES2023+

Gratis. Sin registro. Tus datos permanecen en tu navegador. Anuncios mediante Google AdSense (con consentimiento).

Por ·