Bug muncul dalam program hari ini. Saya men -debug untuk waktu yang lama dan akhirnya mengetahui bahwa itu adalah masalah ini.
Eksperimen dilakukan:
Peringatan (parseInt ("01")), ketika nilai dalam hal ini adalah 01 ====> 07, itu normal, tetapi di "08", "09" akan mengembalikan 0.
(Fenomena ini terjadi di browser kernel IKEA, seperti 360 browser, kesalahan ini akan terjadi) (Google, Firefox tidak akan terpengaruh)
.
Saya belajar tentang alasan fenomena ini setelah membaca informasi:
Penjelasan Tuhan yang agung:
01--07 Secara alami tidak memiliki masalah, tetapi 09 dan 08 semuanya adalah bentuk oktal yang tidak memenuhi syarat, sehingga mereka diproses sebagai 0. Untuk menyelesaikan masalah ini, Anda dapat menggunakan parameter lain dari fungsi parseint untuk memberi tahu Parseint untuk memprosesnya secara desimal.
Parseint ("08", 10) atau parseint ("09", 10)
ParseInt (String, Radix) adalah untuk mengubah string menjadi bilangan bulat. Parameter kedua adalah mengatur format string. Umumnya digunakan adalah 2, 8, 10, dan 16, menunjukkan jumlah string dalam berapa angka biner.
Kisaran radix dapat diinginkan adalah 2 ~ 36. Jika tidak dalam kisaran ini, NAN akan dikembalikan.
Jika nilai radix diatur menjadi 0 atau tidak, format string akan diakui secara otomatis:
Dimulai dengan "0x", parseInt () akan memperlakukan sisa string kecuali 0x sebagai angka heksadesimal.
Dimulai dengan "0", parseInt () akan memperlakukan karakter selain 0 sebagai bilangan oktal atau heksadesimal.
Dimulai dengan angka 1 hingga 9, parseInt () akan memperlakukannya sebagai angka desimal.
Di atas adalah pengetahuan yang relevan tentang alasan mengapa ParseInt ("08") dan "09" kembali 0 dalam JavaScript yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!