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
Linda Hamiltonasal
2024-12-11 16:47:14290semak imbas

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 !!

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
  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

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!

Kenyataan:
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