In JavaScript, numbers prefixed with a `0` are parsed as octal numbers

Posted: 27-10-2024 | Views: 18
In JavaScript, numbers prefixed with a `0` are parsed as octal numbers

JavaScript's Leading Zero Quirks: A Cautionary Tale

Ever wondered why adding a leading zero to a number in JavaScript can lead to unexpected results?

The Octal Trap

In JavaScript, numbers prefixed with a 0 are parsed as octal numbers. This means they are interpreted in base-8, where digits range from 0 to 7.

Example:

let num1 = 010; // This is not decimal 10
console.log(num1); // Output: 8

Why the Confusion?

We're so accustomed to the decimal system (base-10) that it's easy to overlook this nuance. When you write 010, you might intuitively think it's ten, but JavaScript sees it as 1 * 8^1 + 0 * 8^0 = 8.

Avoiding the Pitfall

To ensure correct number interpretation, avoid using leading zeros:

let num2 = 10; // This is decimal 10
console.log(num2); // Output: 10

Remember:

  • Leading zeros: Octal interpretation.
  • No leading zeros: Decimal interpretation.

By understanding this behavior, you can write more accurate and reliable JavaScript code.

#javascript #programming #octal #numberconversion #codingtips

Add comment