E1 — İfade Değerlendirici (1. kısım: + ve - LTR)
+ ve - işaretlerini soldan sağa işleyen küçük bir değerlendirici uygulayın. Rakamları ve işleçleri belirteçlere ayırın, boşlukları yok sayın ve basit korumalar ekleyin.
E1 — İfade Değerlendirici (1. kısım: + ve - LTR), CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 3 dersten oluşur.
Oluşturacağımız şey
Amaç: Yalnızca + ve - içeren küçük matematik metinlerini değerlendirin.
- Sayıları ve işleçleri belirteçlere ayırın
- Boşlukları yok sayın
- Soldan sağa hesaplayın
- Basit hata korumaları ekleyin

Belirteçlere ayırma: sayılar ve işleçler
Belirteçlere ayırıcı, rakamlardan sayılar oluşturur ve [12, "+", 3, "-", 4] gibi bir dizi döndürür.
// 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"));
LTR değerlendirmesi (+/-)
Soldan sağa hesaplayın. Henüz işlem önceliğini veya parantezleri ele almıyoruz.
// 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]));
Güvenli sarmalayıcı
Yeni başlayanların kolayca anlayabileceği, bir değer ya da kısa bir hata metni döndüren güvenli bir sarmalayıcı oluşturun.
// 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"));

Küçük durumları çalıştırın
Örnekleri küçük tutun. İlerleyen bölümlerde öncelik, parantezler ve tekli eksi işaretini ekleyeceğiz.
// 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

Yeni başlayanlara rehberlik
İpuçları:
- Küçük bir kapsamla başlayın (yalnızca + ve -).
- Hata fırlatmak yerine küçük hatalar döndürün.
- Küçük yardımcı işlevler yazın (belirteçlere ayırma, değerlendirme).
- Özellikleri adım adım ekleyin.

LTR davranışı sınavı
Hızlı kontrol: Soldan sağa sonucu.

Özet
Özet: Sayıları ve +/- işleçlerini belirteçlere ayırın, boşlukları yok sayın ve soldan sağa değerlendirin. Küçük hatalar döndürün. Sırada: işlem önceliği ve parantezler.

Sıkça Sorulan Sorular
“E1 — İfade Değerlendirici (1. kısım: + ve - LTR)” dersi ücretsiz mi?
Evet — “E1 — İfade Değerlendirici (1. kısım: + ve - LTR)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 3 dersten oluşur.
“E1 — İfade Değerlendirici (1. kısım: + ve - LTR)” dersinde ne öğreneceğim?
+ ve - işaretlerini soldan sağa işleyen küçük bir değerlendirici uygulayın. Rakamları ve işleçleri belirteçlere ayırın, boşlukları yok sayın ve basit korumalar ekleyin. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.
“E1 — İfade Değerlendirici (1. kısım: + ve - LTR)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- E1 — İfade Değerlendirici (1. kısım: + ve - LTR)
- E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar)
- E3 — Promise Havuzu/Kuyruğu (Eşzamansız Eşzamanlılık)