两值交换的优化,适用大部分语言(原创)

利用javaScript语言举个例子:

var a = '111',b = '222'
a = a ^ b
b = a ^ b
a = a ^ b
console.log(a)    // '222'
console.log(b)    // '111'

'^'符号是js中的异或运算,大部分语言都有,不过表示的符号不一定一样,直接替换例子中即可;

由于异或运算属于更底层一些的操作,所以比起我们平时声明多一个变量来交换两值的方法快不少;

以下是声明变量交换两值的方法:

var a = '111',b = '222',c
c = a
a = b
b = c
console.log(a)   // '222'
console.log(b)   //  '111'

附:位运算中,除了异或运算有优化代码的效果之外,还有其他的一些,比如:shl运算。

a shl 1 等同于 a * 2,也因为是底层的运算,所以前者会比后者快,所有跟2的n次方相乘的运算都可以使用shl来代替

原文地址:https://www.cnblogs.com/hrlin/p/9509770.html