parseInt(string)
แปลงสตริงเป็นจำนวนเต็ม โดย อ่านจากซ้ายไปขวา จนกว่าจะเจอตัวอักษรที่ไม่ใช่ตัวเลข แล้วหยุดและคืนค่าที่อ่านได้
parseInt("765world") // 765 (หยุดที่ 'w')
parseInt("50px") // 50 (หยุดที่ 'p')
parseInt(" 100 ") // 100 (ข้าม whitespace)
parseInt("10.5") // 10 (หยุดที่ '.')
parseInt("abc") // NaN (ตัวแรกไม่ใช่ตัวเลข)
parseInt("0xFF") // 255 (hex prefix)
แนะนำระบุ radix (ฐาน) เสมอ: parseInt("10", 10) ป้องกันการตีความเป็น octal/hex
Number(string)
แปลงสตริงทั้งหมดเป็นตัวเลข (รองรับ float) ถ้าสตริงมีตัวอักษรไม่ใช่ตัวเลข แค่ตัวเดียว ก็คืน NaN
Number("765world") // NaN
Number("50px") // NaN
Number("10.5") // 10.5 (รองรับทศนิยม)
Number(" 100 ") // 100
Number("") // 0 (empty string -> 0)
Number("0xFF") // 255 (hex)
Number(true) // 1
Number(false) // 0
Number(null) // 0
ตารางเปรียบเทียบ
| Input | parseInt() | Number() |
|---|---|---|
| "42" | 42 | 42 |
| "3.14" | 3 | 3.14 |
| "100px" | 100 | NaN |
| "abc" | NaN | NaN |
| "" | NaN | 0 |
| "0x10" | 16 (or 0 without radix) | 16 |
สรุปเมื่อไหร่ใช้ไหน
- parseInt: แปลงค่าที่อาจมีหน่วย/ขยะต่อท้าย (เช่น CSS "50px", "100%")
- Number: แปลงค่าที่คาดหวังเป็นตัวเลขบริสุทธิ์ (form input, JSON parsing)
- parseFloat: ต้องการทศนิยมและอาจมีหน่วยต่อท้าย