javascript中的取反再取反~~沒(méi)有意義
操作符~, 是按位取反的意思,表面上~~(取反再取反)沒(méi)有意義,實(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>
如上,如果沒(méi)有~~,那么隨機(jī)得到的是小數(shù),而且是將小數(shù)的小數(shù)部分去掉,保留整數(shù)。如上面i=7,j=7。然而在C中并不存在這種機(jī)制,C中對(duì)一個(gè)浮點(diǎn)數(shù)(float)是不能按位取反的,而且C中可以用強(qiáng)制類(lèi)型轉(zhuǎn)換(而JS中則沒(méi)有這種機(jī)制,浮點(diǎn)數(shù)轉(zhuǎn)整數(shù))達(dá)到同樣的目的(舍棄小數(shù)部分,保留整數(shù)部分)。

相關(guān)文章
Highslide.js是一款基于js實(shí)現(xiàn)的網(wǎng)頁(yè)中圖片展示插件
這篇文章主要介紹了Highslide.js是一款基于js實(shí)現(xiàn)的網(wǎng)頁(yè)中圖片預(yù)覽查看工具,需要的朋友可以參考下2007-05-05深入理解ES6學(xué)習(xí)筆記之塊級(jí)作用域綁定
本篇文章主要介紹了深入理解ES6學(xué)習(xí)筆記之塊級(jí)作用域綁定,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08js實(shí)現(xiàn)復(fù)選框的全選和取消全選效果
在很多網(wǎng)站都有這樣的功能,當(dāng)點(diǎn)擊一個(gè)全選按鈕之后,所有的復(fù)選框都會(huì)被選中,再點(diǎn)擊之后會(huì)取消全選,功能非常的人性化,可以省卻很多人力,本文將簡(jiǎn)單介紹一下JS如何實(shí)現(xiàn)此功能2017-01-01swiper.js插件實(shí)現(xiàn)pc端文本上下滑動(dòng)功能示例
這篇文章主要介紹了swiper.js插件實(shí)現(xiàn)pc端文本上下滑動(dòng)功能,結(jié)合實(shí)例形式分析了swiper.js插件的具體引用與相關(guān)使用技巧,需要的朋友可以參考下2018-12-12JS庫(kù)particles.js創(chuàng)建超炫背景粒子插件(附源碼下載)
particles.js用于創(chuàng)建粒子的輕量級(jí) JavaScript 庫(kù)。使用方法非常簡(jiǎn)單,代碼也很容易實(shí)現(xiàn),下面通過(guò)本文給大家分享JS庫(kù)particles.js創(chuàng)建超炫背景粒子插件附源碼下載,需要的朋友參考下吧2017-09-09返回上一頁(yè)并自動(dòng)刷新的JavaScript代碼
返回上一頁(yè)并自動(dòng)刷新,JavaScript一般的使用history.go(-1)和history.back()等,需要的朋友可以參考下2014-02-02