javascript中的取反再取反~~沒有意義
更新時(shí)間:2014年04月06日 17:03:20 作者:
操作符~, 是按位取反的意思,表面上~~(取反再取反)沒有意義,下面有個(gè)不錯(cuò)的示例,大家可以參考下
操作符~, 是按位取反的意思,表面上~~(取反再取反)沒有意義,實(shí)際上在JS中可以將浮點(diǎn)數(shù)變成整數(shù)。
復(fù)制代碼 代碼如下:
<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中對一個(gè)浮點(diǎn)數(shù)(float)是不能按位取反的,而且C中可以用強(qiáng)制類型轉(zhuǎn)換(而JS中則沒有這種機(jī)制,浮點(diǎn)數(shù)轉(zhuǎn)整數(shù))達(dá)到同樣的目的(舍棄小數(shù)部分,保留整數(shù)部分)。
相關(guān)文章
JS驗(yàn)證控制輸入中英文字節(jié)長度(input、textarea等)具體實(shí)例
JS驗(yàn)證控制輸入中英文字節(jié)長度(input、textarea等)具體實(shí)例,需要的朋友可以參考一下2013-06-06
基于JS實(shí)現(xiàn)網(wǎng)頁中的選項(xiàng)卡(兩種方法)
這篇文章主要介紹了用js語句實(shí)現(xiàn)網(wǎng)頁中的選項(xiàng)卡(兩種方法),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06
JavaScript簡單實(shí)現(xiàn)關(guān)鍵字文本搜索高亮顯示功能示例
這篇文章主要介紹了JavaScript簡單實(shí)現(xiàn)關(guān)鍵字文本搜索高亮顯示功能,涉及javascript基于事件響應(yīng)的頁面元素遍歷、分割、替換等相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
JavaScript的concat方法實(shí)例代碼(數(shù)組連接)
這篇文章主要介紹了JavaScript的concat方法實(shí)例代碼,包括數(shù)組連與字符連接,需要的朋友可以參考下2023-03-03
layui table復(fù)選框禁止某幾條勾選的實(shí)例
今天小編就為大家分享一篇layui table復(fù)選框禁止某幾條勾選的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
JavaScript中實(shí)現(xiàn)new的兩種方式引發(fā)的探究
眾所周知JS中new的作用是通過構(gòu)造函數(shù)來創(chuàng)建一個(gè)實(shí)例對象,這篇文章主要給大家介紹了關(guān)于JavaScript中實(shí)現(xiàn)new的兩種方式引發(fā)的相關(guān)資料,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05

