【问题标题】:swapping values of two variables, order of precedence?交换两个变量的值,优先顺序?
【发布时间】:2012-11-04 11:55:39
【问题描述】:
var a = 1, b = 9;
a, b = b, a;
console.log(a,b)

1 9

作业是否可以按从左到右的顺序进行?因此,“a”将取“b”的值,而“b”将取“a”的值。

【问题讨论】:

  • 你想做什么?上述语句按预期分配。不是您所期望的,而是 JS 实现所期望的。阅读comma operator
  • a,b = b, ab = a 相同。此外,它记录 1 和 9,而不是 9 9
  • a, b = b, a 是一种表达方式,因此您可以编写 (a, b = b, a); ,这会转化为 [a;:do nothing b=b;:also什么都不做a;:do nothing again]跨度>

标签: javascript variable-assignment


【解决方案1】:

交换值应该很简单:

var temp = b;
b = a;
a = temp;

编辑:如果都是关于整数,即使没有额外的变量也可能发生交换:

b = b - a;
a = a + b;
b = a - b;

【讨论】:

  • 当值不是数字时,它不是那么简单,即数组或对象
  • 如果数组是这种情况,请在您的问题中进行更多说明。否则,我想您最初的问题已得到解答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多