Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Sifar Utama dalam Nombor JavaScript Ditafsirkan?

Bagaimanakah Sifar Utama dalam Nombor JavaScript Ditafsirkan?

DDD
DDDasal
2024-11-22 12:17:14728semak imbas

How are Leading Zeros in JavaScript Numbers Interpreted?

Nombor dengan sifar pendahuluan dalam JavaScript

Nombor dengan sifar pendahuluan dalam JavaScript ditafsirkan secara berbeza bergantung pada formatnya.

Evolusi Sejarah

Awalnya, sifar pendahuluan mewakili perlapanan (asas 8) dalam JavaScript, serupa dengan 0x pendahuluan untuk perenambelasan (asas 16).

10, 012, 0xA // 均表示十进制数 10

Walau bagaimanapun, dalam ECMAScript 3, perwakilan perlapanan ini diturunkan kepada sambungan pilihan dan literal integer perpuluhan tidak lagi boleh mempunyai sifar pendahuluan (melainkan pelaksanaan menyokong sambungan).

Mod ketat dalam ES5 dan kemudian

Dalam mod ketat dalam ES5, literal perpuluhan dengan sifar pendahuluan tidak lagi dibenarkan:

0 // 无效
NonZeroDigit DecimalDigits(opt) // 有效

ES6 Perwakilan baharu diperkenalkan

ES6 memperkenalkan literal binari dan oktal, dengan simbol terkemuka 0b dan 0o:

  • Tersurat perduaan: 0b11110010
  • Tersurat perlapanan: 0o764

Tersurat perlapanan tradisional

>

010 // 可能会被解释为 8 或 10,具体取决于实现

Amalan Terbaik

Untuk memastikan nombor sentiasa Ditafsirkan sebagai perpuluhan, adalah disyorkan untuk mengalih keluar sifar pendahuluan atau penggunaan parseInt menghuraikan nombor:

parseInt('010', 8) // 返回 8
parseInt('010', 10) // 返回 10

Atas ialah kandungan terperinci Bagaimanakah Sifar Utama dalam Nombor JavaScript Ditafsirkan?. 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