在js中有个小操作用~~把字符串转换整数。
console.log(~~'10');
结果:
![](https://img.haomeiwen.com/i264097/de08b29eba83fb7d.png)
console.log(~~'50000000000');
结果:
![](https://img.haomeiwen.com/i264097/57f279e5056ff578.png)
故使用过程中要注意:
1,最好不要是转换浮点数
2,转换的值最好不要大于2^32(4,294,967,295)。因为Bit操作是针对32位有符号整数。如下图:
![](https://img.haomeiwen.com/i264097/c15a5d479df84703.png)
如果想知道自己的位数是否大于32可以使用:
num.toString(2).length
可以写个转换的函数了:
const parseInt = num => Number(num).toString(2).length >= 32 ? parseInt(num, 10) : ~~num;
//注意如果传入的是浮点数则会报错
参考地址:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators
(中文版:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators)
网友评论