Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa JavaScript Melayan Nombor Dengan Sifar Utama sebagai Oktal?

Mengapa JavaScript Melayan Nombor Dengan Sifar Utama sebagai Oktal?

DDD
DDDasal
2024-11-01 10:22:30249semak imbas

Why Does JavaScript Treat Numbers With Leading Zeroes as Octal?

Sifar Utama dalam Huruf Nombor JavaScript: Memahami Penukaran Oktal

Apabila JavaScript menemui literal nombor dengan sifar pendahuluan, ia mentafsirkannya sebagai nombor oktal (asas-8) kerana sebab sejarah. Sifar terkemuka pernah dibenarkan sebagai sambungan dalam ECMAScript 3, membolehkan pembangun menentukan nombor perlapanan dalam kod mereka. Walau bagaimanapun, amalan ini tidak diseragamkan dan membawa kepada kekeliruan, terutamanya dalam mod ketat.

Dalam ECMAScript 5, penggunaan sifar pendahuluan untuk mewakili nombor perlapanan telah ditamatkan sepenuhnya. Untuk mengelakkan kemungkinan ralat, pembangun dinasihatkan untuk mengalih keluar sifar pendahuluan daripada literal angka atau menyatakan secara eksplisit asas menggunakan awalan berikut:

  • BinaryIntegerLiteral: 0b (mis., 0b1010)
  • OctalIntegerLiteral: 0o (mis., 0o10)
  • HexIntegerLiteral: 0x (cth., 0x10)
  • Untuk mengelakkan JavaScript daripada mentafsir nombor literal sebagai nombor perlapanan, gunakan salah satu teknik berikut:

    Alih Keluar Sifar Utama:
  1. Keluarkan sifar pendahuluan daripada literal nombor.
  2. Gunakan parseInt dengan Base 10:
  3. Gunakan parseInt dan tentukan asas sebagai 10 untuk menguatkuasakan perpuluhan tafsiran. Contoh: parseInt('010', 10);
  4. Gunakan Awalan Asas Eksplisit:
  5. Gunakan awalan yang sesuai (cth., 0o untuk perlapanan, 0b untuk perduaan) untuk menyatakan dengan jelas asas bagi nombor literal.

Atas ialah kandungan terperinci Mengapa JavaScript Melayan Nombor Dengan Sifar Utama sebagai Oktal?. 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