Aritmetik
5 + 3 // 8
5 - 3 // 2
5 * 3 // 15
5 / 3 // 1.666...
5 % 3 // 2 (mod)
5 ** 3 // 125 (üs)+ operatörü string'lerle birleştirir:
"a" + "b" // "ab"
"5" + 3 // "53" ← number string'e çevrilir
5 + 3 // 8Karşılaştırma
5 == "5" // true — gevşek (loose), tip dönüştürür
5 === "5" // false — sıkı (strict), tip de eşleşmeli
5 != "5" // false
5 !== "5" // true
5 > 3 // true
5 >= 5 // true❗Kural
Her zaman === ve !== kullan. == beklenmedik dönüşümler yapar:
0 == "" → true, null == undefined → true.
Mantıksal
true && false // false — VE
true || false // true — VEYA
!true // false — DEĞİLShort-circuit (kısa devre):
const name = inputName || "Misafir";
// inputName "falsy" ise "Misafir" atanırAtama operatörleri
let x = 5;
x += 3; // x = x + 3 → 8
x -= 1; // 7
x *= 2; // 14
x /= 2; // 7
x **= 2; // 49Modern operatörler
Nullish coalescing ??
Sadece null veya undefined ise sağdaki kullanılır:
const port = config.port ?? 3000;
// 0 veya "" ise korur (|| bunları false sayardı)Optional chaining ?.
Yol üzerindeki bir şey null/undefined ise undefined döner, hata atmaz:
const city = user?.address?.city;
// user veya address yoksa city = undefined
users?.[0]?.name
api?.fetch?.()Spread ... ve Rest ...
Bunlar ileride detayda gelecek (bölüm 14).
Ternary (üçlü) operatör
const status = age >= 18 ? "yetişkin" : "çocuk";If/else'in kompakt hali. Sade durumlarda kullan, iç içe yapma.
Truthy / Falsy
Bir değerin "boolean değeri" şudur:
Falsy (8 tane): false, 0, -0, 0n, "", null, undefined, NaN
Truthy: geri kalan her şey (boş [] ve {} bile truthy!)
if ([]) console.log("çalışır"); // çalışır
if ("0") console.log("çalışır"); // çalışır — non-empty string