วันนี้เจอบัคในการใช้ 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