บูลีนพื้นฐานเป็นประเภทข้อมูลเชิงตรรกะที่มีเพียง 2 ค่า ได้แก่ true
และ
false
ออบเจ็กต์บูลีน
ค่าทั้งหมดใน JavaScript จะเป็น true
หรือ false
โดยปริยาย ออบเจ็กต์ Boolean
สามารถใช้เพื่อบังคับค่าให้เป็นบูลีน true
หรือ false
โดยอิงตามสถานะ "จริง" หรือ "เท็จ" ของค่านั้นโดยนัย ดังนี้
Boolean( "A string literal" );
> true
ค่าที่ส่งผลให้เกิด false
ได้แก่ 0
, null
, undefined
, NaN
, สตริงว่าง (""
), ค่าที่ละเว้น และบูลีน false
ค่าอื่นๆ ทั้งหมดจะแสดงผลเป็น true
Boolean( NaN );
> false
Boolean( -0 );
> false
Boolean( 5 );
> true
Boolean( "false" ); // the value `"false"` is a string, and therefore implicitly true.
> true
หลีกเลี่ยงการใช้ออบเจ็กต์ Boolean
เป็นคอนสตรัคเตอร์ ซึ่งจะสร้างออบเจ็กต์ที่มีค่าบูลีน ไม่ใช่บูลีนพื้นฐานที่คุณอาจคาดหวัง
const falseBoolean = Boolean( 0 );
const falseObject = new Boolean( 0 );
console.log( falseBoolean );
> false
console.log( falseObject );
> Boolean { false }
falseObject.valueOf();
> false
เนื่องจากออบเจ็กต์ทั้งหมดมีค่าเป็นจริงโดยเนื้อแท้ ออบเจ็กต์บูลีนที่ได้จะประเมินเป็น "จริง" อย่างหลวมๆ เสมอ แม้ว่าจะมีค่า false
ก็ตาม
const falseBoolean = Boolean( 0 );
const falseObject = new Boolean( 0 );
console.log( falseBoolean == true );
> false
console.log( falseObject == true );
> true
ทดสอบความเข้าใจ
คำสั่งใดต่อไปนี้แสดงผล false
0
null
"none"