Cú pháp
if (condition1) {
// code
} else if (condition2) {
// code
} else if (condition3) {
// code
} else {
// code (không điều kiện nào đúng)
}
Ví dụ
<script>
var book = "maths";
if (book == "history") {
document.write("<b>History Book</b>");
} else if (book == "maths") {
document.write("<b>Maths Book</b>");
} else if (book == "economics") {
document.write("<b>Economics Book</b>");
} else {
document.write("<b>Unknown Book</b>");
}
</script>
Đặc điểm
- Điều kiện đánh giá từ trên xuống, dừng ở đầu tiên true.
- Block
else cuối là fallback (optional).
- Có thể lồng nhau (nested).
So sánh với switch
| if...else if | switch |
| Điều kiện bất kỳ (biểu thức boolean) | So sánh giá trị với hằng số (===) |
| Range, complex logic | Exact match, enum-like |
| Chậm hơn nếu nhiều nhánh | Nhanh hơn (jump table tối ưu) |
Best practice
- Đặt điều kiện xác suất cao nhất lên đầu.
- Tránh lồng sâu (>3 cấp) – tách hàm, dùng early return.
- Dùng
=== trong điều kiện so sánh giá trị.