数值

数值的扩展

数值分隔符

  • ES12,允许 JS 的 数值 使用下划线_作为分隔符
    • 这个数值分隔符没有指定间隔的位数。
      • 可以每三位添加一个分隔符,也可以每一位、每两位、每四位添加一个
      • 小数和科学计数法也可以使用数值分隔符
    • 数值分隔符只是一种书写便利,对于 JS 内部数值的存储和输出,并没有影响 ```javascript let budget = 1_000_000_000_000; budget === 10 ** 12 // true

123_00 === 12_300 // true 12345_00 === 123_4500 // true 12345_00 === 1_234_500 // true

// 小数 0.000_001

// 科学计数法 1e10_000

  1. ```javascript
  2. let num = 123_45;
  3. console.log(num); // 12345
  4. num.toString(); // '12345'
  5. 123_45.toString(); // 报错
  • 数值分割符使用禁忌

    • 不能放在数值的最前面或最后面
    • 不能两个或两个以上的分隔符连在一起
    • 小数点的前后不能有分隔符
    • 科学计数法里面,表示指数的 e 或 E 前后不能有分隔符
      1. // 全部报错
      2. 3_.141
      3. 3._141
      4. 1_e12
      5. 1e_12
      6. 123__456
      7. _1464301
      8. 1464301_

      运算符的扩展

      逻辑赋值运算符

  • ||=&&=??=

    • 作用:相当于先进行逻辑运算,然后根据运算结果,再视情况进行赋值运算
    • 应用:为变量或属性设置默认值 ```javascript // 或赋值运算符 x ||= y // 等同于 x || (x = y)

// 与赋值运算符 x &&= y // 等同于 x && (x = y)

// Null 赋值运算符 x ??= y // 等同于 x ?? (x = y)

  1. ```javascript
  2. // 老的写法
  3. user.id = user.id || 1;
  4. // 新的写法
  5. user.id ||= 1;