En esta página

Variables y tipos de datos

15 min lectura TextoCap. 1 — Fundamentos

Variables

JavaScript tiene tres formas de declarar variables: const, let y var. En JavaScript moderno, preferimos const por defecto y let cuando necesitamos reasignar.

const vs let

  • const — No se puede reasignar. Usala siempre que puedas
  • let — Se puede reasignar. Usala solo cuando necesites cambiar el valor
  • var — Evitala. Tiene comportamientos problematicos

Tipos primitivos

JavaScript tiene 7 tipos primitivos:

Tipo Ejemplo Descripcion
string 'Hola' Cadenas de texto
number 42, 3.14 Numeros (enteros y decimales)
boolean true, false Verdadero o falso
null null Ausencia intencional de valor
undefined undefined Variable sin valor asignado
symbol Symbol('id') Identificador único
bigint 9007199254740991n Enteros grandes

Tipado dinámico

JavaScript es de tipado dinámico: una variable puede contener cualquier tipo de valor y cambiar de tipo en tiempo de ejecución. Esto es flexible pero puede causar errores sutiles.

El operador typeof

El operador typeof permite verificar el tipo de un valor en tiempo de ejecución. Es útil para validaciones y depuracion.

Nota: typeof null retorna "object" — esto es un bug historico de JavaScript que nunca se corrigio por compatibilidad.


Práctica

  1. Declara variables con const y let: Crea una constante NOMBRE_APP con el valor 'Mi App' y una variable contador con valor 0. Reasigna contador a 5 y verifica que NOMBRE_APP no se puede reasignar.
  2. Identifica tipos con typeof: Declara una variable de cada tipo primitivo (string, number, boolean, null, undefined) y usa typeof para imprimir el tipo de cada una en consola.
  3. Explora el tipado dinamico: Crea una variable con let asignandole un number, luego reasignala a un string. Usa typeof antes y despues de la reasignacion para observar el cambio de tipo.

En la siguiente leccion aprenderemos sobre funciones en JavaScript.

Evita var
Nunca uses var en código moderno. Tiene problemas de scope (function-scoped en vez de block-scoped) y hoisting que causan bugs dificiles de detectar.
javascript
// const - no se puede reasignar
const nombre = 'Carlos';
const PI = 3.14159;

// let - se puede reasignar
let contador = 0;
contador = 1;

// Tipos primitivos
const texto = 'Hola mundo';        // string
const edad = 25;                    // number
const activo = true;                // boolean
const vacio = null;                 // null
let indefinido;                     // undefined

// typeof
console.log(typeof texto);    // "string"
console.log(typeof edad);     // "number"
console.log(typeof activo);   // "boolean"
console.log(typeof vacio);    // "object" (bug historico!)