7.1.5 ToInt32 ( argument )
抽象操作 ToInt32 将 argument 转换为 2^32 范围内的 2^32 个整数值之一,范围为 -2^31 到 2^31 - 1(包含该值)。 该抽象操作的功能如下:
- 使 number 变为 ? ToNumber(argument)。
- 如果 number 是 NaN、+0、-0、+∞ 或 -∞,则返回 +0。
- 令 int 变为与 number 相同符号的数学值,其大小为 floor(abs(number))。
- 使 int32bit 变为 int 模(modulo) 2^32。
- 如果 int32bit ≥ 2^31,返回 int32bit - 2^32;否则返回 int32bit。
注意:给定 ToInt32 的上述定义:
- ToInt32 抽象操作是幂等的:如果应用于其生成的结果,则第二个应用程序保留该值不变。
- 对于 x 的所有值,ToInt32(ToUint32(x)) 等于 ToInt32(x)。 (这是保留后面的属性 +∞ 和 -∞ 映射到 +0)。
- ToInt32 将 -0 映射到 +0。