var num = '01';
alert(~~num);
:::danger
只支持32位以内的数据,超过范围就会得出错误的结果
遇到非数值会返回0
小数点会被直接删掉直接返回整数
:::
~~2147483648.1//-2147483648
~~'1111aa'// 0
~~'1111.999'// 1111
~~'-1111.999'// -1111
~是js里的按位取反操作符 , ~~ 就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的数值型变量,也就是
true === 1,false === 0。 ~~”” == 0 ~~[] == 0 类似Number()
另外可以也实用 |0
来实现
23.4|0 // 23
-19.6|0 // 19