JavaScript十大取整方法實(shí)例教程
1. parseInt()
// js內(nèi)置函數(shù),注意接受參數(shù)是string,所以調(diào)用該方法時(shí)存在類(lèi)型轉(zhuǎn)換 parseInt("1.5555") // => 1
2. Number.toFixed(0)
// 注意toFixed返回的字符串,若想獲得整數(shù)還需要做類(lèi)型轉(zhuǎn)換 1.5555.toFixed(0) // => "1"
3. Math.ceil()
// 向上取整 Math.ceil(1.5555) // => 2
4. Math.floor()
// 向下取整 Math.floor(1.5555) // => 1
5. Math.round()
// 四舍五入取整 Math.round(1.5555) // => 2 Math.round(1.4999) // => 1
6. Math.trunc()
// 舍棄小數(shù)取整 Math.trunc(1.5555) // => 1
7. 雙按位非取整
// 利用位運(yùn)算取整,僅支持32位有符號(hào)整型數(shù),小數(shù)位會(huì)舍棄,下同 ~~1.5555 // => 1
8. 按位運(yùn)或取整
1.5555 | 0 // => 1
9. 按位異或取整
1.5555^0 // => 1
10. 左移0位取整
1.5555<<0 // => 1
上述10種取整方法中,最常用的估計(jì)是前2種 [我裂開(kāi)了~~],不過(guò)從性能角度看,位運(yùn)算取整和Math函數(shù)性能最佳,內(nèi)置方法parseInt次之,toFixed性能最劣。
以下是Benchmark測(cè)試結(jié)果,證明了這點(diǎn),toFixed性能是最差的:
darwin x64 整數(shù)取整#getNum1#parseInt x 210,252,532 ops/sec ±2.74% (85 runs sampled) 整數(shù)取整#getNum2#toFixed x 3,281,188 ops/sec ±1.54% (86 runs sampled) 整數(shù)取整#getNum3#Math.ceil x 778,272,700 ops/sec ±3.97% (87 runs sampled) 整數(shù)取整#getNum4#Math.floor x 816,990,140 ops/sec ±0.54% (88 runs sampled) 整數(shù)取整#getNum5#Math.round x 814,868,414 ops/sec ±0.65% (88 runs sampled) 整數(shù)取整#getNum6#Math.trunc x 821,032,596 ops/sec ±0.54% (91 runs sampled) 整數(shù)取整#getNum7#~~num x 813,589,741 ops/sec ±0.67% (90 runs sampled) 整數(shù)取整#getNum8#num | 0 x 815,070,107 ops/sec ±0.65% (90 runs sampled) 整數(shù)取整#getNum9#num ^ 0 x 812,635,464 ops/sec ±0.74% (90 runs sampled) 整數(shù)取整#getNum10#num << 0 x 819,230,753 ops/sec ±0.49% (91 runs sampled) Fastest is 整數(shù)取整#getNum6#Math.trunc,整數(shù)取整#getNum10#num << 0
Benchmark源代碼
參考
developer.mozilla.org/zh-CN/docs/…
developer.mozilla.org/zh-CN/docs/…
developer.mozilla.org/zh-CN/docs/…
到此這篇關(guān)于JavaScript十大取整方法的文章就介紹到這了,更多相關(guān)JS取整方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序?qū)崿F(xiàn)藍(lán)牙設(shè)備搜索及連接功能示例詳解
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)藍(lán)牙設(shè)備搜索及連接功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06微信小程序?qū)崿F(xiàn)下拉刷新和上拉分頁(yè)效果的方法詳解
這篇文章主要為大家詳細(xì)介紹了微信小程序動(dòng)畫(huà)是如何實(shí)現(xiàn)下拉刷新和上拉分頁(yè)效果的,文中示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06基于JavaScript 性能優(yōu)化技巧心得(分享)
下面小編就為大家分享一篇基于JavaScript 性能優(yōu)化技巧心得,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12利用Ext Js生成動(dòng)態(tài)樹(shù)實(shí)例代碼
今天在公司幫同事寫(xiě)了個(gè)用Ext Js生成動(dòng)態(tài)樹(shù)的Demo,在這里分享一下,也好供以后自己查閱。2008-09-09JavaScript立即執(zhí)行函數(shù)與函數(shù)劫持的作用
IIFE全拼Imdiately Invoked Function Expression,是一個(gè)在定義的時(shí)候就立即執(zhí)行的JavaScript函數(shù),這篇文章主要給大家介紹了關(guān)于Javascript立即執(zhí)行函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01Webpack框架核心概念(知識(shí)點(diǎn)整理)
webpack 是一個(gè)現(xiàn)代 JavaScript 應(yīng)用程序的模塊打包器(module bundler)。這篇文章主要介紹了Webpack框架核心概念(知識(shí)點(diǎn)整理),需要的朋友可以參考下2017-12-12JavaScript中的標(biāo)簽語(yǔ)句用法分析
這篇文章主要介紹了JavaScript中的標(biāo)簽語(yǔ)句用法,實(shí)例分析了標(biāo)簽語(yǔ)句的功能、定義及相關(guān)使用技巧,需要的朋友可以參考下2015-02-02js實(shí)現(xiàn)局部頁(yè)面打印預(yù)覽原理及示例代碼
js 如何打印預(yù)覽,實(shí)局部打印頁(yè)面很簡(jiǎn)單。就是把你需要打印的部分做一個(gè)起始標(biāo)記,下面有個(gè)示例大大家不妨參考下2014-07-07JS設(shè)置網(wǎng)頁(yè)圖片vspace和hspace屬性的方法
這篇文章主要介紹了JS設(shè)置網(wǎng)頁(yè)圖片vspace和hspace屬性的方法,具體分析了vspace和hspace屬性的功能及javascript修改技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04