博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS中的按位非(~)的使用技巧
阅读量:4838 次
发布时间:2019-06-11

本文共 565 字,大约阅读时间需要 1 分钟。

按位非

按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码

现在让我来看几个例子

例子1

console.log(4);console.log(~4);console.log(~~4);

例子2

console.log(4.9.toString(2));console.log(~4.9);console.log(~~4.9);

例子3

console.log(-4.1.toString(2));console.log(~-4.1);console.log(~~-4.1);

结论

 通过上面的例子我们可以知道对于整数,按位非就是操作数的负值减1.

但是对于浮点数就比较麻烦了,操作浮点数时,会直接舍去小数部分,再取负值减1

利用这点我们可以可以使用~~来代替Math.floor();

比如我们经常求一个数组的中点,就可以直接~~(arr.length/2),是不是比Math.floor()来的更方便呢?

此外|0操作也可以达到和~~类似的效果,例如(arr.length/2)|0

再补充个小知识:

console.log(~~NaN);//0console.log(NaN|0);//0

转载于:https://www.cnblogs.com/wuguanglin/p/notOperator.html

你可能感兴趣的文章
poj 1961 Period
查看>>
BZOJ1560: [JSOI2009]火星藏宝图
查看>>
play framework 相关
查看>>
cf1008 codeforces round #535(div3) E1. Array and Segments (Easy version)
查看>>
React学习笔记
查看>>
React 学习笔记
查看>>
LeetCode_Combinations
查看>>
关于析构函数和构造函数何时调用的小例子
查看>>
快手第一题
查看>>
有向图强连通分量的Tarjan算法及模板
查看>>
MEAN教程3-NPM安装
查看>>
python 文件复制压缩
查看>>
leetcode| Count Numbers with Unique Digits
查看>>
flask 模版语言及信息传递
查看>>
Go第十一篇之编译与工具
查看>>
Ubuntu14.04下安装Hadoop2.4.0 (单机模式)
查看>>
BeautifulSoup练习
查看>>
c++ throw异常(学习)
查看>>
再论:p2p风控是p2p网站的核心——这又是一个文盲式屁话
查看>>
IDEA中Git的使用
查看>>