using bitwise OR in javascript to convert to integer
我们可以进行以下转换:
1 2 3 4 5 | var a ="129.13"|0, // becomes 129 var b = 11.12|0; // becomes 11 var c ="112"|0; // becomes 112 |
这似乎有效,但不确定这是否是标准JS功能。有人知道将字符串和小数转换为整数是否安全吗?
是的,这是标准行为。位运算符只对整数进行操作,因此它们将给定的任何数字转换为有符号的32位整数。
这意味着最大范围是有符号32位整数减去1的范围,即
1 2 3 | (Math.pow(2, 32) / 2 - 1)|0; // 2147483647 (Math.pow(2, 32) / 2)|0; // -2147483648 (wrong result) |