JavaScript中~~运算符的实际用途:浮点数转整数
作者:代码拾荒时间:2026-10-28 08:51:52浏览:200
本文解析JavaScript中~~运算符的实际用途。虽然表面看取反再取反无意义,但该操作可将浮点数转换为整数,常用于从数组中随机选取元素。文章通过示例展示了其在JS中的独特应用,并对比了C语言中强制类型转换的区别。
JavaScript中~~运算符的实际用途
运算符~表示按位取反。表面上看,连续使用两次取反(~~)似乎没有实际意义,但在JavaScript中,这一操作可以将浮点数转换为整数。
代码如下:
<html>
<script>
var myArray = new Array();
myArray.push("a");
myArray.push("b");
myArray.push("c");
myArray.push("d");
//现在要随机从数组中取出一个元素
var random = myArray[~~(Math.random()*myArray.length)]; //Math.random()返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1)
var i = 7.94;
i = ~~i;
alert(i);
var j = 7.34;
j = ~~j;
alert(j);
</script>
</html> 如上所示,如果不使用~~,随机得到的将是小数,且仅保留整数部分。例如上述代码中i和j的结果均为7。然而,在C语言中并不存在这种机制,C语言不允许对浮点数(float)进行按位取反操作。在C语言中,可以通过强制类型转换达到相同目的(即舍弃小数部分,保留整数部分),而JavaScript中则没有直接的强制类型转换语法来实现浮点数转整数,因此~~成为一种替代方案。

作者最新文章
JavaScript入门书籍避坑:这些书不适合初学者
2026-11-05 16:31:15
JS使用Math.round实现保留两位小数的原理与代码
2026-11-05 15:35:55
JavaScript 原生 Date 对象怎么实现日期加减
2026-11-05 14:30:00
JavaScript函数定义的三种方式:声明、表达式与箭头函数
2026-11-05 13:50:55
JavaScript中escape、encodeURI和encodeURIComponent对空格的处理差异
2026-11-05 12:47:23
