位操作~~整数转化

在js中有个小操作用~~把字符串转换整数。

console.log(~~'10');

结果:

转换正常
console.log(~~'50000000000');

结果:

结果是负数

故使用过程中要注意:
1,最好不要是转换浮点数
2,转换的值最好不要大于2^32(4,294,967,295)。因为Bit操作是针对32位有符号整数。如下图:

Paste_Image.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)

http://www.w3schools.com/jsref/jsref_operators.asp

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前些日子从@张鑫旭微博处得一份推荐(Front-end-tutorial),号称最全的资源教程-前端涉及的所有知识...
    谷子多阅读 4,290评论 0 44
  • 在问题出现的那瞬间,一定要控制情绪,不要发火,不要偏激,不要说什么过激的话,懂得忍耐。忍耐不是为了让你不去处理这件...
    罗掌柜real阅读 90评论 0 0
  • 家里还有个略显幼稚但很可靠的爸爸,虽然看起来没有妈妈成熟,但爸爸是孩子的好玩伴。
    韩昀希阅读 164评论 0 0
  • 前情介绍:在自动化测试框架中,数据驱动的意思是指定的是测试用例或者说测试套件是由外部数据集合来驱动的框架。 数据集...
    CC先生之简书阅读 7,533评论 3 6
  • 11月22号晚上6点半在文科楼演播厅举办了品读经典文学沙龙的活动。请来的嘉宾有简少华、黎磊、章淑华、黄谦、陈莲香、...
    默茉妃祥阅读 235评论 0 0