คำตอบสั้น
Boolean([50, 100]) คืนค่า true
เหตุผล
ใน JavaScript **อาร์เรย์ทุกตัวเป็นค่า Truthy** รวมถึงอาร์เรย์ว่าง [] และอาร์เรย์ที่มีค่าใดๆ เพราะอาร์เรย์เป็น Object และ Object ทุกตัว (ยกเว้น null) เป็น Truthy เสมอ
กฎ Falsy values มีเพียง 6 ค่าเท่านั้น:
false0(รวม-0,0n)""(สตริงว่าง)nullundefinedNaN
[50, 100] ไม่อยู่ในรายการนี้ จึงเป็น Truthy
ตัวอย่างโค้ด
<!DOCTYPE html>
<html>
<body>
<p>แปลง [50,100] เป็น Boolean</p>
<script>
var myVal = [50, 100];
document.write("Boolean([50,100]): " + Boolean(myVal)); // true
// เปรียบเทียบกับค่าอื่น
document.write("<br>Boolean([]): " + Boolean([])); // true (อาร์เรย์ว่างก็ true!)
document.write("<br>Boolean([0]): " + Boolean([0])); // true
document.write("<br>Boolean([false]): " + Boolean([false])); // true
document.write("<br>Boolean(null): " + Boolean(null)); // false
document.write("<br>Boolean({}): " + Boolean({})); // true (อ็อบเจกต์ว่างก็ true)
</script>
</body>
</html>
ตารางสรุปค่า Object/Array ต่อ Boolean
| ค่า | Boolean() |
|---|---|
[] | true |
[50,100] | true |
[0] | true |
[false] | true |
{} | true |
null | false |
การประยุกต์ใช้จริง
// ตรวจสอบว่าอาร์เรย์มีข้อมูลหรือไม่ (ผิด - [] ก็คืน true)
if (Boolean(myArray)) { ... } // ไม่แนะนำ
// วิธีที่ถูกต้อง: ตรวจสอบ length
if (myArray.length > 0) { ... } // มีข้อมูลจริง
// หรือใช้ Double NOT (!!) แทน Boolean()
!![50,100] // true
!![] // true