跳到主要内容

JavaScript 程序:交换两个变量

要理解这个示例,你需要掌握以下JavaScript编程主题的知识:

示例 1:使用临时变量

// JavaScript程序交换两个变量的值

// 从用户那里获取输入
let a = prompt("请输入第一个变量: ");
let b = prompt("请输入第二个变量: ");

// 创建一个临时变量
let temp;

// 交换变量
temp = a;
a = b;
b = temp;

console.log(`交换后 a 的值: ${a}`);
console.log(`交换后 b 的值: ${b}`);

输出

请输入第一个变量: 4
请输入第二个变量: 2
交换后 a 的值: 2
交换后 b 的值: 4

这里,

  1. 我们创建了一个临时变量 temp 来暂时存储 a 的值。
  2. 将 b 的值赋给 a。
  3. 将 temp 的值赋给 b。

结果是,变量的值被交换了。

注意: 您也可以使用这种方法交换字符串或其他数据类型。

示例 2:使用 ES6(ES2015)的解构赋值

// JavaScript程序交换两个变量的值

// 从用户那里获取输入
let a = prompt("请输入第一个变量: ");
let b = prompt("请输入第二个变量: ");

// 使用解构赋值
[a, b] = [b, a];

console.log(`交换后 a 的值: ${a}`);
console.log(`交换后 b 的值: ${b}`);

输出

请输入第一个变量: 4
请输入第二个变量: 2
交换后 a 的值: 2
交换后 b 的值: 4

这里,我们使用了一个新的ES6特性,称为解构赋值 [a, b] = [b, a],来交换两个变量的值。如果 [a, b] = [1, 2, 3],a 的值将是 1,b 的值将是 2

  • 首先创建一个临时数组 [b, a],这里的 [b, a] 的值将是 [2, 4]
  • 然后进行数组的解构,即 [a, b] = [2, 4]

结果是,变量的值被交换了。

你可以在JavaScript 解构赋值中了解更多关于解构的信息。

注意:您也可以使用这种方法交换字符串或其他数据类型。

您还可以使用算术运算符交换变量的值。

示例 3:使用算术运算符

// JavaScript程序交换两个变量的值

// 从用户那里获取输入
let a = parseInt(prompt("请输入第一个变量: "));
let b = parseInt(prompt("请输入第二个变量: "));

// 使用加法和减法运算符
a = a + b;
b = a - b;
a = a - b;

console.log(`交换后 a 的值: ${a}`);
console.log(`交换后 b 的值: ${b}`);

输出

请输入第一个变量: 4
请输入第二个变量: 2
交换后 a 的值: 2
交换后 b 的值: 4

这种方法只使用两个变量,并使用算术运算符 +- 来交换变量的值。

这里,使用 parseInt() 是因为 prompt() 以字符串的形式从用户处获取输入。而当数字字符串被加在一起时,它们的行为就像字符串一样。例如,'2' + '3' = '23'。所以 parseInt() 将数字字符串转换为数字。

要了解更多关于类型转换的信息,请访问JavaScript 类型转换

让我们看看上面的程序是如何交换值的。最初,a 是 4,b 是 2

  • a = a + b4 + 2 的值赋给 a(现在是 6)。
  • b = a - b6 - 2 的值赋给 b(现在是 4)。
  • a = a - b6 - 4 的值赋给 a(现在是 2)。

最后,a 是 2,b 是 4

注意:如果两个变量都是数字类型,您可以使用算术运算符(+, -)。

示例 4:使用位异或 XOR 运算符

// JavaScript程序交换两个变量的值

// 从用户那里获取输入
let a = prompt("请输入第一个变量: ");
let b = prompt("请输入第二个变量: ");

// XOR 运算符
a = a ^ b;
b = a ^ b;
a = a ^ b;

console.log(`交换后 a 的值: ${a}`);
console.log(`交换后 b 的值: ${b}`);

输出

请输入第一个变量: 4
请输入第二个变量: 2
交换后 a 的值: 2
交换后 b 的值: 4

位异或 XOR 运算符在两个操作数不同的情况下计算结果为 true。要了解更多关于位运算符,请访问JavaScript 位运算符

让我们看看上面的程序是如何交换值的。最初,a 是 4,b 是 2

  • a = a ^ b4 ^ 2 的值赋给 a(现在是 6)。
  • b = a ^ b6 ^ 2 的值赋给 b(现在是 4)。
  • a = a ^ b6 ^ 4 的值赋给 a(现在是 2)。

最后,a 是 2,b 是 4

注意:这种方法只适用于整数(整数)值。