Rumah >hujung hadapan web >tutorial js >Mengapakah `parseInt()` dalam JavaScript Mengembalikan Keputusan Tidak Dijangka dengan Sifar Utama?

Mengapakah `parseInt()` dalam JavaScript Mengembalikan Keputusan Tidak Dijangka dengan Sifar Utama?

DDD
DDDasal
2024-12-12 18:26:13213semak imbas

Why Does `parseInt()` in JavaScript Return Unexpected Results with Leading Zeros?

Peril Oktal dalam JavaScript: Membongkar Misteri parseInt()

Dalam bidang JavaScript, pembangun sering menghadapi tingkah laku yang membingungkan apabila bekerja dengan fungsi parseInt(). Isu ini berpunca daripada tafsiran fungsi sifar pendahuluan dalam rentetan angka sebagai penunjuk integer oktal (asas-8).

Seperti yang ditunjukkan dalam coretan kod, cuba menghuraikan "01" hingga "07" menggunakan parseInt( ) menghasilkan hasil yang dijangkakan (1 hingga 7), tetapi nilai melebihi itu (seperti "08" dan "09") mengembalikan sifar. Ini kerana JavaScript mentafsirkan sifar pendahuluan sebagai arahan untuk penukaran perlapanan, yang tidak mempunyai digit 8 dan 9.

Untuk memintas keanehan JavaScript ini, terdapat beberapa penyelesaian yang tersedia. Penyelesaian yang paling mudah melibatkan penetapan asas (radix) secara eksplisit untuk fungsi parseInt(). Sebagai contoh, parseInt('08', 10) akan mentafsir dengan betul "08" sebagai integer perpuluhan, mengembalikan hasil jangkaan 8.

Alternatif lain untuk mengendalikan isu perlapanan dalam JavaScript ialah menggunakan Number() pembina. Apabila digunakan pada rentetan berangka dengan sifar pendahuluan, Number() akan menganggapnya sebagai nilai perpuluhan tanpa memerlukan spesifikasi radix eksplisit. Sebagai contoh, Number('08') juga akan menghasilkan hasil 8 yang betul.

Walaupun terdapat pelbagai cara untuk menangani tingkah laku perlapanan parseInt(), adalah penting untuk mengetahui kemungkinan perangkap ini untuk mengelakkan keputusan yang tidak dijangka dalam kod JavaScript anda. Dengan memanfaatkan penyelesaian ini, pembangun boleh menghuraikan rentetan angka dengan yakin tanpa bahaya penukaran perlapanan.

Atas ialah kandungan terperinci Mengapakah `parseInt()` dalam JavaScript Mengembalikan Keputusan Tidak Dijangka dengan Sifar Utama?. 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