a의 값을 b로, b의 값을 a로 바꾸는 방법은 여러가지가 있다.
개인적으로 구조분해와 스프레드 연산자 2개만 알면 모든 상황에서 적절하게 응용 가능하다고 생각한다.

단순한 값 교환

let a = 10;
let b = 20;

// a와 b 값을 바꾸기
let temp = a;
a = b;
b = temp;

console.log(a, b); // 20, 10

장점

가장 기본적이며 직관적인 방법이다.

단점

조금만 코드가 길어져도 이해하기 어려운 구조가 된다.

구조분해할당 Destructuring

let a = 10;
let b = 20;

// 배열 구조분해 활용
[a, b] = [b, a];

console.log(a, b); // 20, 10
let a = 10;
let b = 20;

// 객체 구조분해 활용
let { a, b } = { b, a };

console.log(a, b); // 20, 10

장점

가독성이 뛰어나다

스프레드 연산자 spread ...

let a = 10;
let b = 20;

// 스프레드 연산자 활용
[a, b] = [...b, ...a];

console.log(a, b); // 20, 10

장점

응용력이 뛰어나다.
여기서 다루지는 않겠다.

함수 만들기

// 함수 내부 코드는 뭘 써도 상관 없다
function swap(a, b) {
  let temp = a;
  a = b;
  b = temp;
}

swap(a, b);

장점

재사용하기 좋다.

profile
frontend

0개의 댓글