Home > Web Front-end > JS Tutorial > Why Does `040` Equal 32 in JavaScript?

Why Does `040` Equal 32 in JavaScript?

Mary-Kate Olsen
Release: 2024-11-26 09:01:11
Original
373 people have browsed it

Why Does `040` Equal 32 in JavaScript?

Number with Leading Zero in JavaScript: Deciphering the Mystery

Imagine encountering the following code in JavaScript:

var num = 040;
console.log(num); // 32
Copy after login

Perplexed, you might wonder how 40 equals 32. The answer lies in the significance of the leading zero.

In JavaScript's early versions, leading zeros in numeric literals denoted octal (base 8) numbers, similar to leading 0x for hexadecimal. Thus, "040" was interpreted as 4x8^1 0x8^0 = 32.

However, this practice proved confusing and was downgraded to an optional extension in ECMAScript 3. Modern JavaScript enforces strict mode, where leading zeros in decimal literals are forbidden for consistency.

ECMAScript 6 introduced new ways to represent octal and binary numbers using 0o and 0b prefixes, respectively. The legacy octal format using leading zeros (010) became a syntax error in strict mode.

Therefore, the code above will now return a syntax error in strict mode. If one desires to parse numbers in base 8, they can use the recommended 0o prefixes or employ parseInt as follows:

parseInt('010', 8); // Returns 8
Copy after login

To ensure decimal numbers are parsed correctly, remove leading zeros or use parseInt.

In summary, understanding the historical significance of leading zeros in JavaScript's numeric literals is crucial for comprehending its behavior and interpreting code correctly.

The above is the detailed content of Why Does `040` Equal 32 in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template