javascript中的取反再取反~~


操作符~, 是按位取反的意思,表面上~~(取反再取反)沒有意義,實際上在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中則沒有這種機制,浮點數轉整數)達到同樣的目的(舍棄小數部分,保留整數部分)。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com