~是按位取反的意思,计算机里面处理二进制数据时候的非,~~就是再转回来,利用两个按位取反的符号,进行类型的转换,转换成数字符号。
而在计算机里面的^=是异或运算,相同取0,不同取1.
两个整数交换可以酱紫表示:
|  1   2  | vara = 10,b=20;a ^= b; b^=a;a^=b;  | 
将a = a ^= b; b = b^=a; a = a^=b;在js中类似于:
|  1   2   3   4   5   6  | vara = 1,b = 2;a = a + b;b = a - b;a = a - b;a // 2b //1 | 
不过这种方法适用于任意两个数字类型的交换,无论是整数类型还是小数。
其次,交换两个变量,最简单的方式是:
|  1   2   3   4  | vara = 2,b = 'Miya';[a,b,] = [b,a,]a // Miyab //2 | 
这个是ES6中的数组的解构赋值,很方便的进行两个变量的交换。
 版权声明:《 js中~~和^=分别代表什么,用处是什么? 》为zhangkang原创文章,转载请注明出处!
最后编辑:2019-7-3 22:07:43 
