直接看代码

~~false === 0  
~~true === 1
~~undefined === 0
~~!undefined === 1
~~null === 0
~~!null === 1  
~~"" === 0
~~!"" === 1

~是按位取反的意思,计算机里面处理二进制数据时候的非,~~就是再转回来,利用两个按位取反的符号,进行类型的转换,转换成数字符号。

而在计算机里面的^=是异或运算,相同取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

ES6中的数组的解构赋值,很方便的进行两个变量的交换

var a = 2,b = 3;
[a,b,] = [b,a,]
a // 3
b //2

  

相关文章:

  • 2021-10-05
  • 2021-09-18
  • 2021-06-24
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-20
  • 2022-12-23
  • 2021-11-13
  • 2022-03-06
  • 2022-01-26
  • 2022-12-23
  • 2021-12-10
相关资源
相似解决方案