JavaScript运算符 ~,~~,|,&,&&
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript运算符 ~,~~,|,&,&&,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2228字,纯文字阅读大概需要4分钟。
内容图文
![JavaScript运算符 ~,~~,|,&,&&](/upload/InfoBanner/zyjiaocheng/755/e7803292a7c04abea9ffd0fd618e3357.jpg)
~
我们知道的取反是 ! ,返回类型是boolean类型的,例如:!1==false;!0==true;等等
而~是按位取反,和Boolean没多大关系
来看看~1的计算步骤:
将1(这里叫:原码)转二进制 = 00000001
按位取反 = 11111110
发现符号位(即最高位)为1(表示负数),将除符号位之外的其他数字取反 = 10000001
末位加1取其补码 = 10000010
转换回十进制 = -2
原码:‘1’表示负号,‘0’表示正号
反码:正数的反码还是等于原码,负数的反码就是他的原码除符号位外,按位取反
补码:正数的补码等于他的原码,负数的补码等于反码+1。
~~
~~常用来取整
数字类型的字符串可以转化为纯数字
var a='123';
console.log(~~a); //输出123
字符串中带了其他字母,符号,或者其他除数字外的东西,一律输出 Number类型的0
var a='asd';
console.log(~~a); //输出0
任何boolen类型的,如果为TRUE则输出1,FALSE输出0;
var a=1==1;
console.log(~~a);//输出1
特殊类型,转化为Boolean是true的输出1,转化为boolean是false的输出0;
var a=undefined;
console.log(~~a);//输出0
var b=!undefined;
console.log(~~b);//输出1
位运算符:|
运算方法:
两个位只要有一个为1,那么结果都为1。否则就为0
|运算符还能进行取整运算
位运算符:&
运算方法:
两个数值的个位分别相与,同时为1才得1,只要一个为0就为0。
逻辑与运算:&& (||同理)
当&&前边为true, 不考虑&&后边是true还是false,直接返回后边的值;
当&&前边为false,不考虑&&后边是true还是false,直接返回前边的值;
以上,我们可以知道对于整数,按位非就是操作数的负值减1.
操作浮点数时,会直接舍去小数部分,再取负值减1
利用这点我们可以可以使用~~来代替Math.floor();
比如我们经常求一个数组的中点,就可以直接~~(arr.length/2)
此外|0操作也可以达到和~~类似的效果,例如(arr.length/2)|0
---------------------
我所理解的JS ~~运算符
简单一点就是将一些变量转化为Number(数字)类型的;
~~true == 1
~~false == 0
~~"" == 0
~~[] == 0
~~undefined ==0
~~!undefined == 1
~~null == 0
~~!null == 1
具体转化哪些变量有用呢:
- 数字类型的字符串可以转化为纯数字
var a='123'; console.log(~~a); //输出123
- 字符串中带了其他字母,符号,或者其他除数字外的东西,一律输出 Number类型的0
var a='asd';
console.log(~~a); //输出0
- 任何boolen类型的,如果为TRUE则输出1,FALSE输出0;
var a=1==1; console.log(~~a);//输出1
- 特殊类型,转化为Boolean是true的输出1,转化为boolean是false的输出0;
var a=undefined;
console.log(~~a);//输出0
var b=!undefined;
console.log(~~b);//输出1
内容总结
以上是互联网集市为您收集整理的JavaScript运算符 ~,~~,|,&,&&全部内容,希望文章能够帮你解决JavaScript运算符 ~,~~,|,&,&&所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。