JavaScript中是否存在整数类型?

时间:2015-11-18 06:35:25

标签: javascript integer

我刚刚开始学习Javascript,我立即对Mozilla A re-introduction to JavaScript (JS tutorial)中看似矛盾的陈述感到困惑。

一只手:

  

" 在JavaScript中没有整数,所以你必须   如果你习惯于在C中学习数学,那么你的算术会有点小心   或Java。"

另一方面(紧接该段后):

  

"实际上,整数值被视为32位整数(并且是   以某种方式存储在某些浏览器实现中),这可能是   对于逐位操作很重要。"

  

"您可以使用内置的parseInt()将字符串转换为整数   。功能"

那么,JavaScript中是否存在整数这样的东西或者不存在?

5 个答案:

答案 0 :(得分:23)

JS中只有Number数据类型代表数字。

在内部,它实现为IEEE 754双精度浮点数。

这意味着 - 从技术上讲,没有专用数据类型表示整数。

实际上,这意味着我们可以安全地仅使用上述标准可安全表示的数字。它包括范围内的整数值:[-9007199254740991; 9007199254740991]。这两个值都被定义为常量:Number.MIN_SAFE_INTEGERNumber.MAX_SAFE_INTEGER

答案 1 :(得分:4)

我应该提到,实际上有一个名为BigInt的类型代表了一个真正的整数。

但是,因为它不能与Number一起使用,并且通常仅是用于较大数字的一个好主意,所以我不建议这样做。

我认为值得一提。

答案 2 :(得分:2)

我相信提问者已经找到了答案。但是对于像我这样的人,您可以使用 Number.isInteger()方法来检查数字是否为整数或不在JavaScript中。 MDN

答案 3 :(得分:-1)

啊,是的,这可能会令人困惑。在Javascript中,隐式定义变量的类型。

函数parseInt将不会考虑小数点,结果的类型将是int。

答案 4 :(得分:-1)

  

JavaScript中没有纯粹的整数变量。

比JavaScript中的parseInt()int值为什么,因为我们需要int值来确保我们复杂的数学表达式返回错误的结果

这里有一点可能有助于理解JavaScript中的整数,第一点是 King

  • 在JavaScript中,整数仅表示数字没有小数

  • 整数是不包含小数部分的数字。

  • 整数是可以是正数或负数的数字。

  • 整数是可以在JavaScript中格式化为十进制,八进制或十六进制的数字。

  • 十进制整数由0到9之间的数字组成,不能以前导零开头。

  • 八进制整数,也称为base-8,必须以前导零开头。前导零后面的每个数字可以是0到7。

  • 十六进制整数,也称为base-16,必须以0x或0X开头。前导零后面的每个数字可以是0到15,但是10到15由字母a(或A)到f(或F)表示。

What are integers in JavaScript?

King Point

All Other Points