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

Mục đích của new Boolean() trong JavaScript

new Boolean() tạo một đối tượng Boolean (Boolean object) – một wrapper object bao quanh giá trị nguyên thủy true hoặc false. Khác với giá trị nguyên thủy true/false, đối tượng này có kiểu object và có các phương thức.

Cú pháp

var boolObj = new Boolean(value);

Giá trị ban đầu

Đối tượng có giá trị false nếu value là một trong các giá trị falsy:

  • 0, -0
  • null
  • undefined
  • NaN
  • "" (chuỗi rỗng)
  • false
  • Tham số bị bỏ qua

Ngược lại, đối tượng có giá trị true (kể cả new Boolean(false) là truthy trong điều kiện!).

Ví dụ

<script>
  var flag = new Boolean(false);
  console.log(flag);           // Boolean { false }
  console.log(typeof flag);    // "object"
  console.log(flag.toString()); // "false"
  
  // CẢNH BÁO: Đối tượng Boolean luôn truthy!
  if (flag) {
    console.log("Chạy vào đây vì object luôn truthy");
  }
  
  // So sánh với primitive
  var primitive = false;
  if (primitive) {
    console.log("Không chạy");
  }
</script>

Phương thức phổ biến

  • toString(): Trả về "true" hoặc "false" (chuỗi).
  • valueOf(): Trả về giá trị nguyên thủy true/false.

Khi nào nên dùng?

Hầu như không bao giờ. Trong thực tế, luôn dùng giá trị nguyên thủy true/false hoặc ép kiểu Boolean(value) (không dùng new).

Sự khác biệt quan trọng

// Primitive boolean
typeof true;           // "boolean"
true instanceof Object; // false

// Boolean object
typeof new Boolean(true);           // "object"
new Boolean(true) instanceof Object; // true
new Boolean(true) === true;         // false (so sánh reference)
new Boolean(true) == true;          // true (ép kiểu)

Tóm tắt

  • new Boolean() tạo object, không phải primitive.
  • Object luôn truthy trong điều kiện if, kể cả khi giá trị bên trong là false.
  • Ưu tiên dùng Boolean(value) (hàm chuyển đổi) hoặc toán tử !!value.