E1: evaluador de expresiones (parte 1: + y - de izquierda a derecha)
Implemente un pequeño evaluador que gestione + y - de izquierda a derecha. Divida en tokens los dígitos y operadores, ignore los espacios y añada guardas sencillas.
E1: evaluador de expresiones (parte 1: + y - de izquierda a derecha) es una lección gratuita de JavaScript Academy en CoddyKit. Esta es la lección 1 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de JavaScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de JavaScript Academy incluye 3 lecciones en total.
Lo que construiremos
Objetivo: evaluar cadenas matemáticas pequeñas usando únicamente + y -.
- Convierta en tokens los números y operadores
- Ignore los espacios
- Calcule de izquierda a derecha
- Añada comprobaciones de errores sencillas

Tokenizador: números y operadores
El tokenizador crea números a partir de dígitos y devuelve un arreglo como [12, "+", 3, "-", 4].
// Tokenize: split into numbers and operators; ignore spaces
function tokenize(expr) {
if (typeof expr !== "string") return null;
const tokens = [];
let num = "";
for (let i = 0; i < expr.length; i = i + 1) {
const ch = expr[i];
if (ch === " ") {
// skip spaces
continue;
}
if (ch >= "0" && ch <= "9") {
// build number
num = num + ch;
} else if (ch === "+" || ch === "-") {
// flush pending number
if (num.length > 0) {
tokens.push(Number(num));
num = "";
}
tokens.push(ch);
} else {
// unsupported character
return null;
}
}
if (num.length > 0) tokens.push(Number(num));
return tokens;
}
console.log("tokens:", tokenize("12 + 3 - 4"));
Evaluar de izquierda a derecha (+/-)
Calcule de izquierda a derecha. Todavía no gestionamos la precedencia ni los paréntesis.
// Evaluate tokens left-to-right for + and - only
function evalPlusMinus(tokens) {
if (!Array.isArray(tokens) || tokens.length === 0) return null;
// result starts with first number
let acc = tokens[0];
if (typeof acc !== "number") return null;
// step through [op, num] pairs
for (let i = 1; i < tokens.length; i = i + 2) {
const op = tokens[i];
const val = tokens[i + 1];
if ((op !== "+" && op !== "-") || typeof val !== "number") {
return null;
}
if (op === "+") acc = acc + val;
else acc = acc - val;
}
return acc;
}
console.log("eval 10-3-2:", evalPlusMinus([10, "-", 3, "-", 2]));
Envoltorio seguro
Cree un envoltorio seguro que devuelva un valor o una cadena de error breve para principiantes.
// Glue the pieces: from string to result
function evalExprSimple(expr) {
const tokens = tokenize(expr);
if (tokens === null) {
return { ok: false, error: "Invalid character" };
}
const result = evalPlusMinus(tokens);
if (typeof result !== "number") {
return { ok: false, error: "Invalid sequence" };
}
return { ok: true, value: result };
}
console.log("12 + 3 - 4 =", evalExprSimple("12 + 3 - 4"));
console.log("bad char =", evalExprSimple("2 + a"));

Ejecutar casos pequeños
Mantenga pequeños los ejemplos. En partes posteriores añadiremos precedencia, paréntesis y el signo menos unario.
// A few quick checks
const cases = [
"0-3",
"7+5",
"10-3-2",
"2 + 2 + 2",
"9 - 1 + 1"
];
for (const c of cases) {
const r = evalExprSimple(c);
console.log(c, "=>", r.ok ? r.value : r.error);
}
// Note: unary minus (like "-3+2") not handled yet
// This simple version expects a number first

Orientación para principiantes
Consejos:
- Empiece con un alcance pequeño (solo + y -).
- Devuelva errores breves en lugar de lanzar excepciones.
- Escriba ayudantes pequeños (tokenize, eval).
- Añada funcionalidades paso a paso.

Cuestionario sobre el comportamiento de izquierda a derecha
Comprobación rápida: resultado de izquierda a derecha.

Resumen
Resumen: convierta en tokens los números y +/-, ignore los espacios y evalúe de izquierda a derecha. Devuelva errores breves. Siguiente tema: precedencia y paréntesis.

Preguntas frecuentes
¿La lección «E1: evaluador de expresiones (parte 1: + y - de izquierda a derecha)» es gratis?
Sí — el texto completo de «E1: evaluador de expresiones (parte 1: + y - de izquierda a derecha)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de JavaScript Academy, actualiza a CoddyKit PRO. El curso de JavaScript Academy incluye 3 lecciones en total.
¿Qué aprenderé en «E1: evaluador de expresiones (parte 1: + y - de izquierda a derecha)»?
Implemente un pequeño evaluador que gestione + y - de izquierda a derecha. Divida en tokens los dígitos y operadores, ignore los espacios y añada guardas sencillas. Practicas JavaScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar JavaScript Academy?
No se requiere experiencia previa. JavaScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 3.
¿Cuánto tiempo toma la lección «E1: evaluador de expresiones (parte 1: + y - de izquierda a derecha)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de JavaScript Academy?
Sí. Cada lección de JavaScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- E1: evaluador de expresiones (parte 1: + y - de izquierda a derecha)
- E2: analizador de logs (filtros y contadores sencillos)
- E3: pool/cola de Promises (concurrencia asíncrona)