js中交换变量的值

205 阅读1分钟

交换变量的值

1.中间变量

var a = 1, b = 2;

var c = a; // c = 1

a = b; // a = 2

b = c; // b = 1

2.加减运算 不使用中间变量

var a = 1, b = 2;

a = a + b; // a = 3 b = 2

b = a - b; // a = 3; b = 1

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

3.数组 不使用中间变量

// 错误示例

var a = 1, b = 2;

//[1 , 2]

a = [a, b][1]; // [1, 2][1] a=2

b = [a, b][0]; // [2, 2][0] b=2 //都是2


// 中间详解

var a = 1, b = 2;

[a,b=a] // [1, 1] b=1

[a,a=b] // [1, 2] a=2


// 最终优化代码

// 定义数组时同时给其中一个变量进行赋值 a=b; 定义数组后再通过数组给另外一个变量赋值

b = [a, a=b][0]; // 最终一行代码解决 [1, 2] a=2 b=[1,2][0] = 1

4.对象 不使用中间变量

var a = 1, b = 2;

// 定义对象时同时给其中一个变量进行赋值 a=b; 定义对象后再通过对象的属性给另外一个变量赋值

b = {"parama":a, "paramb":a=b}.parama;

// b = {"parama":a, "paramb":a=b}['parama'];

// 难以阅读的形式 对象的属性名,可以不加引号,但还是普通字符串,不是变量

// b = {a:a, b:a=b}.a;

最终通过打印输出可以看到两个数据已经发生了交换


console.log(a, b);

欢迎指正, 欢迎补充


End