nic*_*ckf 15 javascript floating-point int
我正在查看Google Closure Library中的一些代码,我找到了这一行:
var isNegative = number < 0.0 || number == 0.0 && 1 / number < 0.0;
Run Code Online (Sandbox Code Playgroud)
我认为这种最初奇怪的标志检查的原因是识别-0为负面,但有没有理由使用0.0而不是0?
rsp*_*rsp 18
(自2011年发布此答案以来,已经发生了很多变化 - 请参阅下面的更新)
JavaScript中只有一种数字类型 - IEEE 754双精度浮点数.
查看这些问题,了解该事实的一些后果:
自从我写下这个答案以来已经有4年多了,现在情况要复杂得多.
现在我们有:
我们很快就会:
这意味着JavaScript中可用的数字类型数量将从一个增长:
至少WebAssembly中的以下内容:
(从技术上讲,所有整数类型的内部表示在最低级别是无符号的,但不同的运算符可以将它们视为有符号或无符号,例如int32.sdiv对int32.udiv等等)
这些在类型数组中可用:
asm.js定义以下数字类型:
有人建议在ECMAScript中添加任意精度的整数 - 请参阅:
截至2017年12月,这是2017年12月15日最后更新的第2阶段草案.
实施状况:
尽管 Javascript 中只有一种类型的数字,但许多程序员喜欢表明他们的代码可以处理浮点数和整数。显示小数点的原因是为了文档。
\n\nvar isNegative = number < 0 || number == 0 && 1 / number < 0;\nRun Code Online (Sandbox Code Playgroud)\n\n这与闭包库中的工作方式完全相同。但一些阅读代码的程序员会认为它只适用于整数。
\n\n附录:-\n我最近看到 D. Baranovskiy 写的一篇文章,他对 Google Closure 库提出了很多批评,并指出 \xe2\x80\x9cIt\xe2\x80\x99 是由 Java 开发人员编写的 JavaScript 库,显然不要\xe2\x80\x99t获取JavaScript。\xe2\x80\x9d他在color.js中指出了更多这种类型混淆的例子\n https://github.com/google/closure-library/blob/master /closure/goog/color/color.js
\n\nhttps://www.sitepoint.com/google-closure-how-not-to-write-javascript/
\n| 归档时间: |
|
| 查看次数: |
8777 次 |
| 最近记录: |