~运算符
~运算符
位运算符是三步处理的过程:
- 把运算数转换成 32 位数字
- 把二进制数转换成它的二进制反码
- 把二进制数转换成浮点数
1 | var iNum1 = 25 //25 等于 00000000000000000000000000011001 |
~~技巧
这是刷题时看见别人的代码里使用的东西,通常用来代替 Math.trunc()的方法。
1 | //单个 ~ |
当原始输入不确定时,~~可以将任何非数字类型转换成 0:
1 | console.log(~~[]) //0 |
在使用前应仔细检查值,数值大的情况:
1 | let number = 2147483647.123 //比 32 位最大正数,再多一点 |