在javascript中使用按位OR转换为整数

时间:2012-10-02 17:48:04

标签: javascript string integer bit-manipulation ecmascript-5

我们可以执行以下操作来转换:

var a = "129.13"|0,  // becomes 129

var b = 11.12|0; // becomes 11

var c = "112"|0; // becomes 112

这似乎有效,但不确定这是否是标准的JS功能。有没有人知道这是否可以安全地用于将字符串和小数转换为整数?

1 个答案:

答案 0 :(得分:5)

是的,这是标准行为。按位运算符只对整数运算,因此它们将它们给出的任意数字转换为有符号的32位整数。

这意味着最大范围是带符号的32位整数减1,即2147483647

(Math.pow(2, 32) / 2 - 1)|0; // 2147483647

(Math.pow(2, 32) / 2)|0; // -2147483648 (wrong result)