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

Empty Array [] แปลงเป็น Number ใน JavaScript ยังไง?

ใช้ Number() แปลง Empty Array [] เป็น Number จะได้ 0

ตัวอย่างโค้ด

<!DOCTYPE html>
<html>
  <body>
    <p>Convert [] to Number</p>
    <script>
      var myVal = [];
      document.write("Number: " + Number(myVal)); // ผลลัพธ์: 0
    </script>
  </body>
</html>

Type Conversion Table: [] (Empty Array)

MethodResultType
Number([])0Number
String([])"" (Empty String)String
Boolean([])trueBoolean
+[]0Number (Unary +)
[] + []""String (Concat)
[] == 0trueLoose Equality
[] == ""trueLoose Equality
[] === 0falseStrict Equality

คำอธิบาย Mechanism (ToPrimitive)

  1. Number([]) → เรียก [].valueOf() → คืน Array (Object) → เรียก [].toString() → "" → Number("") → 0
  2. String([]) → [].toString() → ""
  3. Boolean([]) → Object → true (All Objects are Truthy)

Non-Empty Array

ArrayNumber()String()Boolean()
[5]5"5"true
[1,2]NaN"1,2"true
["hello"]NaN"hello"true

สรุป: Empty Array → Number: 0, String: "", Boolean: true — ใช้ === และ Array.isArray() เช็คแทน Loose Equality