parseint

JavaScript: ข้อควรระวังในการใช้ parseInt

วันนี้เจอบัคในการใช้ function parseInt() นั่นคือ
ถ้าเรียก parseInt('08') หรือ parseInt('09') จะได้ค่า 0 กลับมาเสมอ

เพราะอะไร???

คำตอบ parseInt ไม่ได้มี parameter แค่ตัวเดียว
แต่มี 2 ตัว โดยตัวที่สองคือเลขฐานนั่นเอง
เช่นถ้าเราต้องการแปลงตัวเลขฐาน 10 ก็ให้ใส่ 10 เป็น parameter ที่สองเช่น

Code

a = parseInt('08', 10);
document.write(a);

Output

8

ซึ่งปรกติเราจะไม่ได้ใส่ parameter ตัวที่สองไว้ ทำให้ javascript ต้องหาฐานของเลขเอง
โดยถ้า string ขึ้นต้นด้วย 0x จะคิดว่าเป็นเลขฐาน 16
ถ้าขึ้นต้นด้วย 0 จะคิดว่าเป็นเลขฐาน 8

Syndicate content