Toán tử điều kiện (ternary operator) đánh giá biểu thức true/false và thực thi một trong hai câu lệnh dựa trên kết quả.
| STT | Toán tử & Mô tả |
|---|---|
| 1 | ? : (Conditional) Nếu Condition true? Giá trị X : Ngược lại giá trị Y |
Ví dụ
<html>
<body>
<script>
var a = 10;
var b = 20;
var linebreak = "<br />";
document.write("((a > b) ? 100 : 200) => ");
result = (a > b) ? 100 : 200;
document.write(result);
document.write(linebreak);
document.write("((a < b) ? 100 : 200) => ");
result = (a < b) ? 100 : 200;
document.write(result);
document.write(linebreak);
</script>
<p>Thay đổi giá trị biến và toán tử để thử...</p>
</body>
</html>
Cú pháp
condition ? exprIfTrue : exprIfFalse
Ví dụ thực tế
// Gán giá trị mặc định
const isLoggedIn = true;
const greeting = isLoggedIn ? "Welcome back!" : "Please log in";
// Kiểm tra tuổi
const age = 20;
const status = age >= 18 ? "Adult" : "Minor";
// Trong JSX (React)
return <div>{isLoading ? <Spinner /> : <Content />}</div>;
// Nested ternary (nên tránh, khó đọc)
const result = score > 90 ? "A" : score > 70 ? "B" : "C";
Lưu ý
- Ternary là expression (trả về giá trị), khác
if/elselà statement. - Dùng cho logic đơn giản, gán biến, render điều kiện.
- Logic phức tạp → dùng
if/elsehoặcswitchcho readability. - Không lồng ternary quá sâu (clean code).