E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)
Implemente um pequeno avaliador que trate + e - da esquerda para a direita. Separe dígitos e operadores, ignore espaços e adicione guardas simples
E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 1 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.
O que será criado
Objetivo: Avaliar pequenos textos matemáticos usando apenas + e -.
- Transformar números e operadores em tokens
- Ignorar espaços
- Calcular da esquerda para a direita
- Adicionar verificações simples de erro

Analisador de tokens: números e operadores
O analisador de tokens cria números a partir dos dígitos e retorna um vetor 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"));
Avaliação da esquerda para a direita (+/-)
Calcule da esquerda para a direita. Ainda não tratamos precedência nem parênteses.
// 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]));
Invólucro seguro
Crie um invólucro seguro que retorne um valor ou uma pequena cadeia de caracteres de erro para iniciantes.
// 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"));

Execute casos pequenos
Mantenha os exemplos pequenos. Adicionaremos precedência, parênteses e o sinal de menos unário em partes posteriores.
// 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

Orientações para iniciantes
Dicas:
- Comece com um escopo pequeno, apenas + e -.
- Retorne erros pequenos em vez de lançar exceções.
- Escreva pequenos auxiliares, como tokenize e eval.
- Adicione os recursos passo a passo.

Questionário sobre o comportamento da avaliação da esquerda para a direita
Verificação rápida: resultado da esquerda para a direita.

Recapitulação
Recapitulação: Transforme números e +/- em tokens, ignore espaços e avalie da esquerda para a direita. Retorne erros pequenos. Próximo: precedência e parênteses.

Perguntas Frequentes
A aula “E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)” é grátis?
Sim — o texto completo de “E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.
O que vou aprender em “E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)”?
Implemente um pequeno avaliador que trate + e - da esquerda para a direita. Separe dígitos e operadores, ignore espaços e adicione guardas simples Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar JavaScript Academy?
Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 3.
Quanto tempo leva a aula “E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de JavaScript Academy?
Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)
- E2 — Analisador de registros (filtros e contadores simples)
- E3 — Pool/fila de Promises (concorrência assíncrona)