Mengapakah JavaScript Melayan Nombor dengan Sifar Utama sebagai Oktal?

DDD
Lepaskan: 2024-10-31 08:31:29
asal
869 orang telah melayarinya

Why Does JavaScript Treat Numbers with Leading Zeros as Octal?

Layanan JavaScript terhadap Nombor dengan Sifar Utama: Membongkar Misteri

Dalam JavaScript, nombor dengan sifar pendahuluan ditafsirkan sebagai nilai perlapanan, yang boleh membawa kepada keputusan yang tidak dijangka. Untuk memahami tingkah laku ini, mari kita mendalami sejarahnya.

Latar Belakang Sejarah

Pada mulanya, JavaScript membenarkan penghuraian literal dengan sifar pendahuluan sebagai nombor perlapanan. Walau bagaimanapun, tingkah laku ini telah ditamatkan dalam mod ketat dalam ECMAScript 5, dan ralat sintaksis kini dilemparkan. Akibatnya, JavaScript kini membezakan antara nombor perpuluhan dan perlapanan melalui penggunaan awalan tertentu:

  • Perpuluhan: Tiada sifar pendahuluan atau angka bukan sifar pendahuluan
  • Oktal: Diawali dengan 0o atau 0O (diperkenalkan dalam ECMAScript 6)

Sintaks Oktal Legasi

Walaupun penamatan penghuraian oktal dengan sifar pendahuluan dalam mod ketat, tingkah laku lama ini masih dibenarkan dalam tidak ketat mod. Ini boleh membawa kepada isu keserasian dan keputusan yang tidak dapat diramalkan.

Penyelesaian

Untuk mengelakkan tafsiran nombor dengan sifar pendahuluan sebagai perlapanan, terdapat dua pendekatan utama:

  1. Alih Keluar Sifar Utama: Hanya alih keluar sebarang sifar pendahuluan daripada literal nombor untuk memastikan ia dianggap sebagai nilai perpuluhan.
  2. Gunakan ParseInt dengan Asas Perpuluhan: Gunakan fungsi parseInt untuk menghuraikan nombor, menyatakan asas sebagai 10 (perpuluhan) untuk memastikan perpuluhan yang dijangkakan tafsiran.

Contoh

Untuk menggambarkan kesan sifar pendahuluan, pertimbangkan contoh berikut:

  • 010 dalam mod ketat melemparkan ralat.
  • 010 dalam mod tidak ketat boleh mengembalikan 8 (bergantung pada pelaksanaan).
  • 0o10 atau 0O10 dalam ECMAScript 6 mengembalikan 8.
  • parseInt('010', 8) mengembalikan 8 (melayannya sebagai oktal).
  • parseInt( '010', 10) mengembalikan 10 (melayannya sebagai perpuluhan).

Dengan mematuhi penyelesaian ini, anda boleh mengelakkan kekaburan dan memastikan nombor ditafsir secara konsisten mengikut asas yang diingini.

Atas ialah kandungan terperinci Mengapakah JavaScript Melayan Nombor dengan Sifar Utama sebagai Oktal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!