Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Toán tử điều kiện (?:) / Ternary Operator trong JavaScript

Cú pháp

condition ? valueIfTrue : valueIfFalse

Ví dụ cơ bản

<script>
var a = 10, b = 20;
var result = (a > b) ? 100 : 200;
document.write("(a > b) ? 100 : 200 => " + result); // 200

result = (a < b) ? 100 : 200;
document.write("<br>(a < b) ? 100 : 200 => " + result); // 100
</script>

Ứng dụng thực tế

  • Gán giá trị có điều kiện: var status = age >= 18 ? "adult" : "minor";
  • Render điều kiện (React/JSX): {isLoading ? : }
  • Default value ngắn gọn: var name = inputName ? inputName : "Anonymous"; (dùng || hoặc ?? tốt hơn).

Lồng nhau (nested) – Cẩn thận

// Khó đọc
var grade = score > 90 ? "A" : score > 80 ? "B" : score > 70 ? "C" : "F";

// Tốt hơn: if/else hoặc switch
// Hoặc dùng object lookup
var gradeMap = { A: 90, B: 80, C: 70 };

Lưu ý

  • Toán tử ternary trả về giá trị, không phải câu lệnh (statement).
  • Không dùng cho side-effect phức tạp (gán, gọi hàm nhiều dòng) – dùng if/else rõ ràng hơn.
  • Priority thấp hơn hầu hết toán tử – dùng ngoặc đơn khi cần.