为什么 `+0n` 会抛出错误,而 `-0n` 不会?

2023-12-08

以下代码在 javascript 中引发错误:

console.log(String(+0n))

但这段代码运行成功:

console.log(String(-0n))

Why +0n抛出一个错误但是-0n才不是?


这样它不会破坏 asm.js:

  • Unary +后跟的表达式始终要么是数字,要么导致抛出。出于这个原因,不幸的是,+在 BigInt 上 需要抛出,而不是对称+关于号码: 否则,之前“类型声明”的 asm.js 代码现在将是 多态性。

As Bergi评论中强调,这是三个选项中最不糟糕的一个:

  1. +BigInt -> BigInt:破坏 asm.js 以及任何其他做出假设的内容“一元加给出一个数字”;
  2. +BigInt -> Number:与设计决策禁止 Number 和 BigInt 之间的隐式转换;或者
  3. +BigInt -> 错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 `+0n` 会抛出错误,而 `-0n` 不会? 的相关文章

随机推荐