国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - js中向下取整

瀏覽:121日期:2023-05-26 18:36:23

問題描述

在js中,以前向下取整都是使用Math.floor方法,現(xiàn)在有看到這樣的用法:或運(yùn)算 interval = interval | 0為什么這樣就可以向下取整了,這種用法和Math.floor比較,有什么好處?

問題解答

回答1:

注意,| 不是邏輯或,而是按位或 (OR)。

一些小區(qū)別。比如 Math.floor(NaN) 還是返回 NaN。但 NaN | 0 返回 0。再比如 Math.floor(Infinity) 返回 Infinity,但 Infinity | 0 返回 0

回答2:

你還可以這樣 interval = interval >> 0

回答3:

首先樓上S1ngS1ng說那些小區(qū)別是對(duì)的。

另外,|是位或運(yùn)算,由于0在內(nèi)存中存儲(chǔ)的時(shí)候,是所有的整數(shù)位全部被填充了0,所以按二進(jìn)制位和一個(gè)數(shù)值進(jìn)行或運(yùn)算,對(duì)應(yīng)位上無論是0還是1和0進(jìn)行或運(yùn)算,都會(huì)得到它本身,但是由于數(shù)字0在內(nèi)存中不存在小數(shù)部分,所以位或運(yùn)算之后interval的小數(shù)部分被丟棄。其實(shí)是通過丟棄小數(shù)部分實(shí)現(xiàn)了向下取整。

由于是位運(yùn)算,所以會(huì)比Math.floor()快。

回答4:

真實(shí)的原因是:js內(nèi)部的類型自動(dòng)轉(zhuǎn)換。

js的數(shù)值都是以64位浮點(diǎn)型表示的。當(dāng)一個(gè)數(shù)值需要進(jìn)行位運(yùn)算時(shí),js會(huì)自動(dòng)將它轉(zhuǎn)換為32位有符號(hào)整形,并舍棄小數(shù)部分。

n|0 ; n>>0 ; //后面的0 僅用于保證n的整數(shù)值不變而已。

從64位降到32位,是會(huì)有精度損失的。小心!,最大有效范圍: 2^32/2-1

> f64=(Math.pow( 2,32)/2-1)-0.52147483646.5> f64|02147483646> f64>>02147483646> (f64 + 2)|0 //超出有效范圍-2147483648> (f64 + 2)>>0 //超出有效范圍-2147483648> Math.floor(f64 + 2) //正確2147483648回答5:

兩種都可以實(shí)現(xiàn), interval = interval | 0 這個(gè)是一個(gè)寫作的技巧,看個(gè)人愛好吧。可能就是interval = interval | 0這種寫法運(yùn)行會(huì)快一點(diǎn),寫代碼這個(gè)也肯定比Math.floor寫得快!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 日本美女视频韩国视频网站免费 | 久久毛片网站 | 日韩中文字幕在线观看视频 | 美女午夜色视频在线观看 | 久草一级片 | 欧美性三级 | 欧美亚洲国产人成aaa | 亚洲精品欧美日韩 | 国产日韩精品欧美一区视频 | 性欧美videos精品 | 亚洲欧美日韩一区 | 亚洲国产欧美在线不卡中文 | 99久久精品久久久久久婷婷 | 精品久久一区二区三区 | 高清日本无a区 | 深夜福利网址 | 欧美日本一区二区 | 日韩在线观看视频免费 | 久久精品免费一区二区视 | 日本韩国欧美一区 | 色综合久久88色综合天天 | 欧美一级毛片免费观看视频 | 久久久久依人综合影院 | 成人性生免费视频 | 一个人看的日本www的免费视频 | 亚洲国产字幕 | 99精品视频在线观看免费播放 | 国产美女一级毛片 | 精品一区二区三区视频在线观看免 | 婷婷的久久五月综合先锋影音 | 久久精品在线 | 亚洲高清一区二区三区久久 | 国产精品午夜波多野结衣性色 | 国产视频亚洲 | 久草在现 | 亚洲男人的天堂成人 | 欧美成人免费在线观看 | 久久性生大片免费观看性 | 成人在线综合网 | 国产日韩欧美精品一区二区三区 | 美女黄网站人色视频免费国产 |