Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ผลลัพธ์เมื่อแปลง [50,100] เป็น Boolean ใน JavaScript


คำตอบสั้น

Boolean([50, 100]) คืนค่า true

เหตุผล

ใน JavaScript **อาร์เรย์ทุกตัวเป็นค่า Truthy** รวมถึงอาร์เรย์ว่าง [] และอาร์เรย์ที่มีค่าใดๆ เพราะอาร์เรย์เป็น Object และ Object ทุกตัว (ยกเว้น null) เป็น Truthy เสมอ

กฎ Falsy values มีเพียง 6 ค่าเท่านั้น:

  1. false
  2. 0 (รวม -0, 0n)
  3. "" (สตริงว่าง)
  4. null
  5. undefined
  6. NaN

[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
nullfalse

การประยุกต์ใช้จริง

// ตรวจสอบว่าอาร์เรย์มีข้อมูลหรือไม่ (ผิด - [] ก็คืน true)
if (Boolean(myArray)) { ... } // ไม่แนะนำ

// วิธีที่ถูกต้อง: ตรวจสอบ length
if (myArray.length > 0) { ... } // มีข้อมูลจริง

// หรือใช้ Double NOT (!!) แทน Boolean()
!![50,100] // true
!![]     // true