JavaScript中是否存在整数类型?

Is there or isn't there an integer type in JavaScript?

我刚开始学习javascript,马上就被Mozilla的重新介绍javascript(JS教程)中看似矛盾的语句弄糊涂了。

11手:

"There's no such thing as an integer in JavaScript, so you have to
be a little careful with your arithmetic if you're used to math in C
or Java."

另一方面(在该段之后):

"In practice, integer values are treated as 32-bit ints (and are
stored that way in some browser implementations), which can be
important for bit-wise operations."

"You can convert a string to an integer using the built-in parseInt()
function."

那么,在javascript中是否存在整数之类的东西?


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

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

它的意思是-技术上没有表示整数的专用数据类型。

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


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

但是,因为它不能与Number一起使用,而且通常只适用于较大的数字,所以我不建议这样做。

不过我觉得值得一提。


There is no such thing as a purely integer variable in JavaScript.

而不是为什么在javascript中使用parseInt()int值,因为我们需要int值来确保复杂的数学表达式返回无错误的结果。

这里有一点可能对理解javascript中的整数很有帮助,第一点是国王。

  • 在javascript中,整数只意味着数字没有小数部分。

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

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

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

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

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

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

来源

javascript中的整数是什么?

国王点

所有其他点


啊,是的,这会让人很困惑。在JavaScript中,变量的类型是隐式定义的。

函数parseInt不考虑小数点,结果类型为int。