為什麼JS中一個浮點數位或0會去掉小數部分?
12-31
在JS中,
1.222 | 0 === 1;-2.33 | 0 === -2;這是什麼原理?
「|」運算是二進位或,操作數會先轉為int32。
@賀師俊 一語道破。
題主對於JS的數字類型了解還不夠深的話,可以讀讀看我寫的一篇相關的博文:為什麼不要在 JavaScript 中使用位操作符?位運算都會轉整數。其實沒原理可言,就是規定先轉整數。因為js的number是浮點數,不轉整數怎麼進行位運算。你看java的浮點數是不能進行位運算的。再一點就是這樣效率其實不高,不如用Math.floor,更可讀
推薦閱讀:
※怎樣精確區分這些名詞:庫、插件、組件、控制項、擴展?
※sass、scss、less、compass、bootstrap學習的順序是什麼?
※沒有Fork而是直接拷貝代碼到自己的倉庫並進行修改增加新的功能,是否算抄襲?
※Sublime Text 3中如何一次性修改變數及其引用?
※在瀏覽器端,安全控制項跟 JS 加密的密碼有何區別?
TAG:JavaScript | 前端工程師 | IEEE754 |