Rumah >hujung hadapan web >tutorial js >Mengapakah `parseInt()` dalam JavaScript Mengembalikan Keputusan Tidak Dijangka dengan Sifar Utama?
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!