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

Toán tử phủ định (!) trong JavaScript là gì?

Toán tử ! (Logical NOT / Phủ định) đảo ngược giá trị boolean của toán hạng.

  • Nếu toán hạng truthy → trả về false.
  • Nếu toán hạng falsy → trả về true.
  • Luôn trả về boolean primitive.

Ví dụ

<!DOCTYPE html>
<html>
<body>
    <script>
        var answer = true;
        document.write(answer + "<br>");    // true
        document.write(!answer + "<br>");   // false
        
        // Ép kiểu bất kỳ giá trị nào thành boolean
        console.log(!0);        // true
        console.log(!1);        // false
        console.log(!"");       // true
        console.log(!"hello");  // false
        console.log(!null);     // true
        console.log(!undefined);// true
        console.log(!NaN);      // true
        console.log(![]);       // false (mảng rỗng truthy)
    </script>
</body>
</html>

Double NOT (!!): Ép kiểu thành boolean

!!"hello"   // true
!!0         // false
!!null      // false
!!{}        // true (object rỗng truthy)

Ứng dụng thực tế:

// Kiểm tra tồn tại
if (!user) { redirectLogin(); }

// Toggle boolean
isVisible = !isVisible;

// Default value (trước ES6 default parameter)
function greet(name) {
    name = name || "Khách"; // Nếu falsy thì dùng "Khách"
}

// Optional chaining + NOT
if (!user?.address?.city) { ... }