js中两次按位取反
js中兩次按位取反
文章目錄
- js中兩次按位取反
操作符~, 是按位取反的意思,表面上~~(取反再取反)沒有意義,實(shí)際上在JS中可以將浮點(diǎn)數(shù)變成整數(shù)。
<html> <script> var myArray = new Array(); myArray.push("a"); myArray.push("b"); myArray.push("c"); myArray.push("d"); //現(xiàn)在要隨機(jī)從數(shù)組中取出一個(gè)元素 var random = myArray[~~(Math.random()*myArray.length)]; //Math.random()返回0和1之間的偽隨機(jī)數(shù),可能為0,但總是小于1,[0,1) var i = 7.94; i = ~~i; alert(i); var j = 7.34; j = ~~j; alert(j); </script> </html>如上,如果沒有~~,那么隨機(jī)得到的是小數(shù),而且是將小數(shù)的小數(shù)部分去掉,保留整數(shù)。如上面i=7,j=7。然而在C中并不存在這種機(jī)制,C中對(duì)一個(gè)浮點(diǎn)數(shù)(float)是不能按位取反的,而且C中可以用強(qiáng)制類型轉(zhuǎn)換(而JS中則沒有這種機(jī)制,浮點(diǎn)數(shù)轉(zhuǎn)整數(shù))達(dá)到同樣的目的(舍棄小數(shù)部分,保留整數(shù)部分)。
轉(zhuǎn)載自:https://www.cnblogs.com/cangqinglang/p/9746786.html
參考鏈接:https://blog.csdn.net/weixin_42538437/article/details/82380210
總結(jié)
- 上一篇: oracledb_npm包的使用
- 下一篇: Antdv日期选择组件国际化问题