Rumah > hujung hadapan web > tutorial js > Mengapakah `parseInt` JavaScript Menganggap Sifar Utama sebagai Perlapanan, dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `parseInt` JavaScript Menganggap Sifar Utama sebagai Perlapanan, dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Lepaskan: 2024-12-11 16:47:14
asal
262 orang telah melayarinya

Why Does JavaScript's `parseInt` Treat Leading Zeros as Octal, and How Can I Fix It?

Gelagat Octal yang Menarik JavaScript: Memahami dan Menghindarinya

Apabila menggunakan JavaScript, anda mungkin menghadapi gelagat pelik yang boleh menyebabkan kekeliruan. Fungsi parseInt, apabila dibentangkan dengan nombor yang diawali dengan sifar pendahuluan, mentafsirkannya sebagai integer oktal. Ini bermakna untuk nilai yang lebih besar daripada 7 dalam perwakilan perlapanan, fungsi mengembalikan sifar.

Contohnya:

parseInt('01'); // equals 1
parseInt('02'); // equals 2
parseInt('03'); // equals 3
parseInt('04'); // equals 4
parseInt('05'); // equals 5
parseInt('06'); // equals 6
parseInt('07'); // equals 7
parseInt('08'); // equals 0 !!
parseInt('09'); // equals 0 !!
Salin selepas log masuk

Untuk menyelesaikan isu ini dan memastikan parseInt berkelakuan seperti yang diharapkan, terdapat beberapa penyelesaian:

  1. Nyatakan Pangkalan (Radix):
    Anda boleh menentukan asas atau radix secara eksplisit apabila menggunakan parseInt. Sebagai contoh, untuk mentafsir nombor sebagai integer perpuluhan, anda boleh menggunakan sintaks berikut:

    parseInt('08', 10); // returns 8
    Salin selepas log masuk
  2. Gunakan Objek Nombor:
    Sebagai alternatif, anda boleh menggunakan objek Number dan bukannya parseInt. Objek Nombor secara automatik mentafsir nombor tanpa sifar pendahuluan sebagai integer perpuluhan:

    Number('08'); // returns 8
    Salin selepas log masuk

Dengan memahami dan menggunakan penyelesaian ini, anda boleh mengatasi gelagat oktal JavaScript dengan berkesan dan memastikan penghuraian integer yang tepat.

Atas ialah kandungan terperinci Mengapakah `parseInt` JavaScript Menganggap Sifar Utama sebagai Perlapanan, dan Bagaimana Saya Boleh Membetulkannya?. 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