Perangkap Oktal JavaScript dan Penyelesaian Praktikal
Apabila mengendalikan penghuraian integer dalam JavaScript, adalah penting untuk mengetahui kelakuannya yang tidak konvensional apabila menghadapi sifar pendahuluan . JavaScript mentafsirkannya sebagai integer perlapanan, menghasilkan hasil yang tidak dijangka.
Sebagai contoh, menghurai '08' dan '09' menghasilkan 0 kerana ketiadaannya dalam asas-8. Untuk mengelakkan perangkap ini, beberapa penyelesaian wujud:
1. Spesifikasi Radix Eksplisit:
Dengan menyatakan radix (asas) secara eksplisit, anda mengarahkan parseInt untuk menganggap sifar pendahuluan sebagai digit perpuluhan.
parseInt('08', 10); // 8 parseInt('09', 10); // 9
2. Objek Nombor:
Objek Nombor menyediakan alternatif yang lebih mudah kepada parseInt. Ia secara automatik menukar input kepada integer perpuluhan.
Number('08'); // 8 Number('09'); // 9
Nota Tambahan:
Piawaian JavaScript (ECMA-262) versi 5 memperkenalkan perubahan pecah yang menghapuskan tingkah laku oktal ini. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa perubahan ini tidak disokong secara universal oleh penyemak imbas, terutamanya versi yang lebih lama. Oleh itu, masih dinasihatkan untuk melaksanakan penyelesaian di atas untuk keserasian merentas penyemak imbas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelakkan Penghuraian Integer Oktal Tidak Dijangka JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!