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