doubleyong
管理员
管理员
  • 最后登录2026-05-10
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:8459回复:0

[js]js中得~~ 两个波浪线是指什么意思

楼主#
更多 发布于:2019-03-21 18:30
其实是一种利用符号进行的类型转换,转换成数字类型

~~true == 1
~~false == 0
~~"" == 0
~~[] == 0

~~undefined ==0
~~!undefined == 1
~~null == 0
~~!null == 1


解析:

其实: ~是按位非,就是每一位取反(处理时,会先将数据转成二进制,在进行取反操作),
~~ 常用来取整
比如 ~~10.2323=10

~~(10/3) = 3


还有,位运算符的运用,计算机里面的 ^= 是异或运算,相同取0,不同取1.

两个整数交换可以酱紫表示:

var  a = 10,b=20;
a ^= b; b^=a;a^=b;   

将a = a ^= b; b = b^=a; a = a^=b;在js中类似于:

var a = 1,b = 2;
a = a + b;
b = a - b;
a = a - b;
a // 2
b //1

不过这种方法适用于任意两个数字类型的交换,无论是整数类型还是小数


位运算符介绍:http://www.w3school.com.cn/js/pro_js_operators_bitwise.asp
参考:https://www.cnblogs.com/tangjiao/p/9131993.html
https://zhidao.baidu.com/question/324495666.html

最新喜欢:

zhanghezhangh... 阿尔卑斯丶阿尔卑斯丶
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号