国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

JavaScript按位非操作符(~)

瀏覽:136日期:2023-04-28 08:58:04

問題描述

看到<TFC2017/>的抽獎代碼

JavaScript按位非操作符(~)

~~23.5 // 23

為什么~操作符可以將數字取整呢?

問題解答

回答1:

經過 ToInt32。其作用是將被操作數的二進制形式按位翻轉。所以兩個 ~~ 連在一起就相當于進行了如下操作:

對操作數進行 ToInt32

按位翻轉

再次按位翻轉實際上也還是利用了 ToInt32 的絕對值取整

另外關于 ~ 操作符有個技巧還是比較實用的:~(-1) 的值為 0,而且 -1 是唯一一個經過 ~ 運算返回假值的值(包括其他那些特殊的值比如 NaN、{}、[] 等都不會返回假值)字符串和數組的 indexOf 函數查找失敗會返回 -1,這時候就可以用 if(~str.indexOf(’str’)) // 來表示找到了比判斷 >= 0 或者 != -1 更優雅,跟用 !! 來判斷非假值有異曲同工之妙

作者:mdluo鏈接:https://www.zhihu.com/questio...

取整是把浮點數轉化了32位二進制整數,所以能還原狀態的位操作都能進行取整,如23.5 >> 0 //23、23.5 >> 0 //23。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 个旧市| 乳源| 武冈市| 东安县| 淮北市| 怀来县| 锡林郭勒盟| 望奎县| 龙泉市| 蒙山县| 阿克陶县| 峨边| 建宁县| 兴安盟| 璧山县| 信阳市| 台南县| 吉安县| 扎鲁特旗| 大庆市| 布拖县| 奉贤区| 民县| 新蔡县| 醴陵市| 桓台县| 缙云县| 饶河县| 沽源县| 松潘县| 绵阳市| 霍林郭勒市| 海伦市| 祁阳县| 南涧| 阳泉市| 神农架林区| 鄂尔多斯市| 桑日县| 阿拉善盟| 云和县|