以下代码在 JavaScript 中引发错误:
console.log(String(+0n))Run Code Online (Sandbox Code Playgroud)
但这段代码运行成功:
console.log(String(-0n))Run Code Online (Sandbox Code Playgroud)
为什么+0n会抛出错误但-0n没有抛出错误?
jon*_*rpe 14
这样它就不会破坏 asm.js:
- 一元
+后跟的表达式始终要么是数字,要么导致抛出。不幸的是,出于这个原因,+on BigInt 需要抛出,而不是与+on Number 对称:否则,之前“类型声明”的 asm.js 代码现在将是多态的。
正如伯吉在评论中强调的那样,这是三个选项中最不糟糕的一个:
+BigInt -> BigInt:破坏 asm.js 以及任何其他做出“一元加给出数字”假设的内容;+BigInt -> Number:与不允许 Number 和 BigInt 之间隐式转换的设计决策相冲突;或者+BigInt -> 错误。| 归档时间: |
|
| 查看次数: |
760 次 |
| 最近记录: |