javascript中交换两个变量的值,不声明第三个变量

之前面试遇到的一个问题

var a=1;

var b=2;

交换两个变量的值,不使用第三个变量

一般的解决方案是如下:

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

完美实现了交换的目的。

如果a,b不是基本数据类型,而是对象,那怎么实现呢?

其实不难 简单一句代码就能实现:

var a={x:1};

var b={y:1};

a=[b,b=a][0];

console.log(a,b);//{y:1},{x:1}

 

posted on 2017-01-12 14:21  码农Tony  阅读(231)  评论(0)    收藏  举报

导航