我有两个变量:
var a = 1,
b = 2;
我的问题是如何交换它们?只有这个变量,没有任何对象。
我有两个变量:
var a = 1,
b = 2;
我的问题是如何交换它们?只有这个变量,没有任何对象。
当前回答
我们可以使用IIFE交换两个值,而不需要额外的参数
Var a = 5, b =8; B =(函数(a){ 返回一个 } (a, a = b)); 文档。写("a: "+ a+ " b: "+ b);
其他回答
var a = 5;
var b = 10;
b = [a, a = b][0];
//or
b = [a, a = b];
b = b[0];
//or
b = [a, b];
a = b[1];
b = b[0];
alert("a=" + a + ',' + "b=" + b);
删除或注释2 //or并使用一组代码运行
http://jsfiddle.net/USdv8/57/
下面是交换两个变量值的一行代码。 给定变量a和b:
b = [a, a = b][0];
演示如下:
var = 1, b = 2, 输出= . getelementbyid(“输出”); 输出。innerHTML="<p>原来:"+a+", "+b+"</p>"; //交换变量a和b的值 B = [a, a = B][0]; 输出。innerHTML+="<p>交换:"+a+", "+b+"</p>"; < div id = "输出" > < / div >
从ES6开始,你还可以更优雅地交换变量:
var a = 1,
b = 2;
[a, b] = [b, a];
console.log('a:', a, 'b:', b); // a: 2 b: 1
使用第三个变量,像这样:
var a = 1,
b = 2,
c = a;
a = b; // must be first or a and b end up being both 1
b = c;
DEMO -使用第三个变量
正如你的问题是宝贵的“只有这个变量,没有任何对象。,答案也会弥足珍贵:
Var a = 1, B = 2
a=a+b;
b=a-b;
a=a-b;
这是个诡计 正如罗德里戈·阿西斯所说,它“可以更短”
b=a+(a=b)-b;
演示: http://jsfiddle.net/abdennour/2jJQ2/