在js中有個小操作用~~把字符串轉(zhuǎn)換整數(shù)。
console.log(~~'10');
結(jié)果:
轉(zhuǎn)換正常
console.log(~~'50000000000');
結(jié)果:
結(jié)果是負(fù)數(shù)
故使用過程中要注意:
1,最好不要是轉(zhuǎn)換浮點數(shù)
2,轉(zhuǎn)換的值最好不要大于2^32(4,294,967,295)南捂。因為Bit操作是針對32位有符號整數(shù)。如下圖:
Paste_Image.png
如果想知道自己的位數(shù)是否大于32可以使用:
num.toString(2).length
可以寫個轉(zhuǎn)換的函數(shù)了:
const parseInt = num => Number(num).toString(2).length >= 32 ? parseInt(num, 10) : ~~num;
//注意如果傳入的是浮點數(shù)則會報錯
參考地址:
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)