js中兩次按位取反
文章目錄
操作符
~
, 是按位取反的意思,表面上~~
(取反再取反)沒有意義,實際上在JS中可以將浮點數變成整數。
<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=7,j=7。然而在C中並不存在這種機制,C中對一個浮點數(float)是不能按位取反的,而且C中可以用強制類型轉換(而JS中則沒有這種機制,浮點數轉整數)達到同樣的目的(捨棄小數部分,保留整數部分)。
轉載自:https://www.cnblogs.com/cangqinglang/p/9746786.html
參考鏈接:https://blog.csdn.net/weixin_42538437/article/details/82380210