ข้อผิดพลาดปรากฏในโปรแกรมวันนี้ ฉันดีบักเป็นเวลานานและในที่สุดก็พบว่ามันเป็นปัญหานี้
ทำการทดลองแล้ว:
การแจ้งเตือน (ParseInt ("01")) เมื่อค่านี้คือ 01 ====> 07 มันเป็นเรื่องปกติ แต่ใน "08", "09" จะกลับมา 0
(ปรากฏการณ์นี้เกิดขึ้นในเบราว์เซอร์ของเคอร์เนล IKEA เช่นเบราว์เซอร์ 360 ข้อผิดพลาดนี้จะเกิดขึ้น) (Google, Firefox จะไม่ได้รับผลกระทบ)
-
ฉันเรียนรู้เกี่ยวกับเหตุผลของปรากฏการณ์นี้หลังจากอ่านข้อมูล:
คำอธิบายของพระเจ้าที่ยิ่งใหญ่:
01--07 โดยธรรมชาติไม่มีปัญหา แต่ 09 และ 08 ล้วนเป็นรูปแบบแปดรูปแบบที่ไม่มีเงื่อนไขดังนั้นพวกเขาจึงถูกประมวลผลเป็น 0 เพื่อแก้ปัญหานี้คุณสามารถใช้พารามิเตอร์อื่นของฟังก์ชั่น ParseInt เพื่อบอก ParseInt ให้ประมวลผลในทศนิยม
Parseint ("08", 10) หรือ ParseInt ("09", 10)
ParseInt (String, Radix) คือการแปลงสตริงเป็นจำนวนเต็ม พารามิเตอร์ที่สองคือการตั้งค่ารูปแบบของสตริง ที่ใช้กันทั่วไปคือ 2, 8, 10 และ 16 ซึ่งระบุจำนวนสตริงในหมายเลขไบนารีคืออะไร
ช่วงของ radix สามารถเป็นที่ต้องการคือ 2 ~ 36 หากไม่ได้อยู่ในช่วงนี้ NAN จะถูกส่งคืน
หากค่าของ radix ถูกตั้งค่าเป็น 0 หรือไม่รูปแบบของสตริงจะได้รับการยอมรับโดยอัตโนมัติ:
เริ่มต้นด้วย "0x", ParseInt () จะรักษาส่วนที่เหลือของสตริงยกเว้น 0x เป็นเลขฐานสิบหก
เริ่มต้นด้วย "0", ParseInt () จะปฏิบัติต่อตัวละครอื่นนอกเหนือจาก 0 เป็นหมายเลขแปดหรือเลขฐานสิบหก
เริ่มต้นด้วยหมายเลข 1 ถึง 9 ParseInt () จะถือว่าเป็นเลขทศนิยม
ข้างต้นคือความรู้ที่เกี่ยวข้องเกี่ยวกับเหตุผลที่ ParseInt ("08") และ "09" กลับมา 0 ใน JavaScript แนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!