🎥 Video hướng dẫn chi tiết
Nguồn: Khóa học JavaScript - Kteam
1. Boolean trong JavaScript
Boolean là kiểu dữ liệu logic chỉ có 2 giá trị:
true- Đúngfalse- Sai
2. Cách tạo Boolean
Trực tiếp:
let isActive = true;
let isComplete = false;
console.log(typeof isActive); // "boolean"
Từ so sánh:
let age = 25, minAge = 18;
let isAdult = age >= minAge; // true
let isChild = age < minAge; // false
Từ hàm Boolean():
console.log(Boolean(1)); // true
console.log(Boolean(0)); // false
console.log(Boolean("hello")); // true
console.log(Boolean("")); // false
3. Truthy và Falsy Values
Falsy Values (luôn là false):
console.log(Boolean(false)); // false
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
Truthy Values (tất cả còn lại):
console.log(Boolean(1)); // true
console.log(Boolean("hello")); // true
console.log(Boolean([])); // true
4. Toán tử Logic
AND (&&) - Cả hai phải đúng:
let age = 25, hasLicense = true;
let canDrive = age >= 18 && hasLicense; // true
OR (||) - Một trong hai đúng:
let isWeekend = false, isHoliday = true;
let canRest = isWeekend || isHoliday; // true
// Default values
let userName = null;
let displayName = userName || "Khách"; // "Khách"
NOT (!) - Đảo ngược:
let isLoggedIn = false;
let needsLogin = !isLoggedIn; // true
// Chuyển về boolean
console.log(!!"hello"); // true
console.log(!!0); // false
5. Short-circuit Evaluation
&& - Dừng khi gặp falsy:
let user = { name: "John", profile: { email: "john@example.com" } };
// Safe navigation
console.log(user && user.profile && user.profile.email); // "john@example.com"
// Conditional execution
let isAdmin = true;
isAdmin && console.log("Welcome admin!");
|| - Dừng khi gặp truthy:
function greet(name) {
name = name || "Khách"; // Default value
console.log(`Xin chào, ${name}!`);
}
greet("John"); // "Xin chào, John!"
greet(); // "Xin chào, Khách!"
6. So sánh với các toán tử
== vs ===:
// Loose equality (==) - Type coercion
console.log(true == 1); // true
console.log(false == 0); // true
// Strict equality (===) - No type coercion
console.log(true === 1); // false
console.log(true === true); // true
// Best practice: Always use ===
let isComplete = true;
if (isComplete === true) { // ✅ Good
console.log("Task completed");
}
7. Bài tập nhỏ
Validate form đăng ký:
function validateUser(userData) {
let email = userData.email || "";
let password = userData.password || "";
let age = userData.age || 0;
let agreeTerms = userData.agreeTerms || false;
let validEmail = email.includes("@") && email.length >= 5;
let validPassword = password.length >= 8;
let validAge = age >= 13 && age <= 120;
let termsAccepted = agreeTerms === true;
let isValid = validEmail && validPassword && validAge && termsAccepted;
return {
isValid: isValid,
checks: { validEmail, validPassword, validAge, termsAccepted }
};
}
let testUser = {
email: "user@example.com",
password: "MyPass123",
age: 25,
agreeTerms: true
};
console.log(validateUser(testUser));
Chốt lại:
Bài 9 giúp bạn hiểu về kiểu dữ liệu Boolean với 2 giá trị true/false, Truthy/Falsy values, các toán tử logic (&&, ||, !), Short-circuit Evaluation, và sự khác biệt giữa == và === trong so sánh Boolean.
📚 Bài tiếp theo
👉 Bài 10: Null và Undefined - Tìm hiểu sự khác biệt giữa null và undefined trong JavaScript!