数字分隔符的相等性判断

JavaScript 中使用下划线分隔的数字与普通数字是否相等

问题

1_000_000 === 1000000 这个等式是否成立?

解答

答案是 true

1_000_000 使用了数字分隔符(Numeric Separators),允许在数字中使用下划线来提高可读性。这个特性不会改变数字的实际值。

let a = 1000000000000; 
let b = 1_000_000_000_000; 
console.log(a === b); // true

数字分隔符支持多种数字格式:

// 十进制
let dec = 1_000_000.220_720; 

// 二进制
let bin = 0b1010_0001_1000_0101; 

// 八进制
let oct = 0o1234_5670; 

// 十六进制
let hex = 0xA0_B0_C0; 

// BigInt
let bint = 9_223_372_036_854_775_807n;

关键点

  • 数字分隔符 _ 仅用于提高可读性,不影响数值本身
  • 带分隔符和不带分隔符的数字完全相等
  • 支持整数、小数、二进制、八进制、十六进制和 BigInt