当前位置: 首页 > 知识库问答 >
问题:

JavaScript中是否存在整数类型?

黄弘盛
2023-03-14

我刚刚开始学习Javascript,我立刻被Mozilla的《Javascript重新介绍》(JS教程)中看似矛盾的语句弄糊涂了。

一只手:

“JavaScript中没有整数这类东西,因此,如果你习惯于用C或Java进行数学运算,那么你就必须对算术稍微小心一点。”

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

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

“可以使用内置的parseInt()函数将字符串转换为整数。”

那么,JavaScript中是否有整数之类的东西?

共有3个答案

齐意致
2023-03-14

我相信提问者已经找到了他/她的答案。但是对于像我这样的人来说,你可以通过使用Number.is整数()方法在JavaScript中检查数字是否为整数。MDN

丁毅庵
2023-03-14

我应该提到的是,实际上有一种类型叫做BigInt,它表示一个真正的整数。

然而,因为它不能与Number一起使用,并且通常只对较大的数字使用是一个好主意,所以我不建议使用它。

不过,我认为这值得一提。

js prettyprint-override">var n = BigInt(1337);
console.log(typeof n); //prints "bigint"
须景胜
2023-03-14

更新:随着新的ES2020标准发布,这个答案不再完全正确,请参阅其他答案(来自@Mathias Lykkegaard Lorenzen)关于BigInt的详细信息。

JS中只有表示数字的数字数据类型。

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

它的意思是——从技术上讲,不存在表示整数的专用数据类型。

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

 类似资料:
  • 问题内容: 我只想从任何可能的字符串中创建一个正则表达式。 有内置的方法吗?如果没有,人们会使用什么?红宝石有。我觉得我不需要自己写东西,那里肯定有一些标准。谢谢! 问题答案: 上面链接的功能不足。它无法转义或(字符串的开头和结尾)或,这在字符组中用于范围。 使用此功能: 乍看起来似乎没有必要,但是转义(以及)使该函数适合于转义要插入字符类和正则表达式主体的字符。 转义使该函数适合转义要在JS正则

  • 这里有一些示例来展示您的函数应该如何工作。 我已经两天没睡了,我能写的最好的代码是

  • 看完这个问题:.NET中存在僵尸吗?我开始怀疑javascript代码中是否有僵尸进程发生的可能性? 有意的例子:

  • 问题内容: 我的代码是 但是,有时我无法加载。萤火虫错误 me.onChange不是一个函数 我想优雅地降级,因为这不是我程序中最重要的功能。给出相同的错误。 关于如何确保它存在然后仅执行的任何建议? (下面的任何一种方法都不能尝试抓到一件作品) 问题答案: 尝试这样的事情: 或更好(根据UpTheCreek推荐的评论)

  • 问题内容: 我有以下代码: 我得到这个值:“ ”,这是 我想知道JavaScript是否处理64位整数,还是我做错了什么? 问题答案: JavaScript使用IEEE-754双精度(64位)格式表示数字。据我了解,这为您提供53位精度,或者15至16个十进制数字。您的数字位数超出了JavaScript所能应付的位数,因此最终得到了一个近似值。 这样并不是真正的“错误处理”,但是如果您需要对大数进

  • 问题内容: 如何检查JavaScript中的变量是否为整数,如果不是,则引发警报?我试过了,但是不起作用: 问题答案: 使用===运算符(严格等于,如下所示: