Skip to content

Operators

const a = 10, b = 3;
console.log(a + b); // 13 — addition
console.log(a - b); // 7 — subtraction
console.log(a * b); // 30 — multiplication
console.log(a / b); // 3.333... — division (ไม่มี integer division)
console.log(a % b); // 1 — modulus (เศษ)
console.log(a ** b); // 1000 — exponentiation
// increment / decrement
let count = 0;
count++; // 1
count--; // 0

นี่คือจุดที่สำคัญที่สุดใน JavaScript operators:

// == (loose equality) — แปลง type ก่อนเทียบ ❌
console.log(5 == "5"); // true ⚠️
console.log(0 == false); // true ⚠️
console.log(null == undefined); // true ⚠️
// === (strict equality) — เทียบทั้ง value และ type ✅
console.log(5 === "5"); // false ✅
console.log(0 === false); // false ✅
console.log(null === undefined); // false ✅
const age = 25;
const hasLicense = true;
// AND — ทั้งสองต้อง true
if (age >= 18 && hasLicense) { /* ขับรถได้ */ }
// OR — อย่างน้อยหนึ่งต้อง true
if (age < 13 || age > 65) { /* ส่วนลดพิเศษ */ }
// NOT — กลับค่า
if (!hasLicense) { /* ไม่มีใบขับขี่ */ }
const age = 20;
const status = age >= 18 ? "ผู้ใหญ่" : "เด็ก";
// เทียบเท่า:
// if (age >= 18) { status = "ผู้ใหญ่"; } else { status = "เด็ก"; }
// ?? คืนค่าขวาเมื่อซ้ายเป็น null หรือ undefined เท่านั้น
const input = null;
const value = input ?? "default"; // "default"
// เปรียบเทียบกับ || ที่จับ falsy ทั้งหมด
const count = 0;
console.log(count || 10); // 10 ⚠️ (0 เป็น falsy)
console.log(count ?? 10); // 0 ✅ (0 ไม่ใช่ null/undefined)
const user = { profile: null };
// รวม ?. กับ ?? เพื่อ safe access + default
const name = user.profile?.name ?? "ไม่ระบุชื่อ";
console.log(name); // "ไม่ระบุชื่อ"