我刚刚开始学习Javascript,我立即对Mozilla A re-introduction to JavaScript (JS tutorial)中看似矛盾的陈述感到困惑。
一只手:
" 在JavaScript中没有整数,所以你必须 如果你习惯于在C中学习数学,那么你的算术会有点小心 或Java。"
另一方面(紧接该段后):
"实际上,整数值被视为32位整数(并且是 以某种方式存储在某些浏览器实现中),这可能是 对于逐位操作很重要。"
和
"您可以使用内置的parseInt()将字符串转换为整数 。功能"
那么,JavaScript中是否存在整数这样的东西或者不存在?
答案 0 :(得分:23)
JS中只有Number数据类型代表数字。
在内部,它实现为IEEE 754双精度浮点数。
这意味着 - 从技术上讲,没有专用数据类型表示整数。
实际上,这意味着我们可以安全地仅使用上述标准可安全表示的数字。它包括范围内的整数值:[-9007199254740991; 9007199254740991]
。这两个值都被定义为常量:Number.MIN_SAFE_INTEGER
和Number.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)表示。
源