我刚刚开始学习 Javascript,我立即对 Mozilla 中看似矛盾的陈述感到困惑JavaScript 重新介绍(JS 教程) https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript.
一只手:
"不存在整数这样的东西在 JavaScript 中,所以你必须
如果您习惯用 C 进行数学计算,请小心计算
或爪哇。”
另一方面(紧接该段落之后):
“实际上,整数值被视为 32 位整数(并且是
在某些浏览器实现中以这种方式存储),这可以是
对于按位运算很重要。”
and
“您可以使用内置的 parseInt() 将字符串转换为整数
功能。”
那么,JavaScript 中是否存在整数这样的东西呢?
UPDATE:随着新的 ES2020 标准发布,这个答案不再完全正确,请参阅另一个答案 https://stackoverflow.com/a/51149434/251311 (from @Mathias Lykkegaard Lorenzen https://stackoverflow.com/users/553609/mathias-lykkegaard-lorenzen) about BigInt
细节。
只有Number http://www.ecma-international.org/ecma-262/6.0/index.html#sec-ecmascript-language-types-number-typeJS 中表示数字的数据类型。
在内部它的实现为IEEE 754 http://www.ecma-international.org/ecma-262/6.0/index.html#sec-terms-and-definitions-number-value双精度浮点数。
这意味着 - 从技术上讲,不存在表示整数的专用数据类型。
实际上,这意味着我们只能安全地使用由上述标准安全表示的数字。它包括以下范围内的整数值:[-9007199254740991; 9007199254740991]
。两个值都定义为常量:Number.MIN_SAFE_INTEGER http://www.ecma-international.org/ecma-262/6.0/index.html#sec-number.min_safe_integer and Number.MAX_SAFE_INTEGER http://www.ecma-international.org/ecma-262/6.0/index.html#sec-number.max_safe_integer相应地。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)