Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengelak Isu Tafsiran Oktal parseInt dalam JavaScript?

Bagaimanakah Saya Boleh Mengelak Isu Tafsiran Oktal parseInt dalam JavaScript?

Linda Hamilton
Lepaskan: 2025-01-05 19:06:39
asal
650 orang telah melayarinya

How Can I Avoid parseInt's Octal Interpretation Issues in JavaScript?

Peril Oktal JavaScript: Penyelesaian untuk Salah Laku ParseInt

Fungsi parseInt JavaScript boleh tersandung apabila menemui nombor dengan sifar pendahuluan. Isu ini berpunca daripada kecenderungannya untuk mentafsir sifar pendahuluan sebagai digit perlapanan, yang membawa kepada keputusan yang salah.

Contoh:

parseInt('01'); // 1
parseInt('08'); // 0 (invalid octal digit)
Salin selepas log masuk

Penyelesaian:

  • Nyatakan Pangkalan (Radix)

Penyelesaian yang paling mudah ialah dengan memberikan asas nombor atau radix secara eksplisit. Ini boleh dilakukan menggunakan parameter kedua parseInt:

parseInt('08', 10); // 8 (specifying base 10)
Salin selepas log masuk
  • Use Number Constructor

Sebagai alternatif, Number constructor boleh digunakan untuk menghurai nombor, termasuk nombor yang mendahului sifar:

Number('08'); // 8
Salin selepas log masuk
  • Tukar kepada Rentetan Asas 10

Pendekatan lain ialah menukar rentetan kepada asas 10 sebelum menghuraikannya:

parseInt(parseInt('08', 8).toString(), 10); // 8 (convert octal to base 10)
Salin selepas log masuk
  • Guna Biasa Ungkapan

Ungkapan biasa boleh digunakan untuk mengalih keluar sifar pendahuluan:

parseInt(/^0+(.*)$/gm('008')); // 8 (match and capture non-zero digits)
Salin selepas log masuk

Nota:

Dalam JavaScript Edisi ke-5 (ECMA-262), tingkah laku parseInt telah berubah, menghapuskan isu tafsiran oktal. Walau bagaimanapun, untuk keserasian dengan versi JavaScript yang lebih lama, adalah disyorkan untuk menggunakan salah satu penyelesaian yang dinyatakan di atas apabila menemui nombor dengan sifar pendahuluan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Isu Tafsiran Oktal parseInt dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan