Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengelakkan Penghuraian Integer Oktal Tidak Dijangka JavaScript?

Bagaimanakah Saya Boleh Mengelakkan Penghuraian Integer Oktal Tidak Dijangka JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 08:25:11946semak imbas

How Can I Avoid JavaScript's Unexpected Octal Integer Parsing?

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!

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