자바스크립트에서 변수를 선언하고 값을 넣을 때 사용하는 할당 연산자(=)는 수학의 등호와는 다르게 동작한다. 수학에서의 등호는 양쪽이 같다는 의미지만, 자바스크립트에서는 오른쪽 값을 계산한 후 왼쪽 변수에 할당한다는 의미다.
자바스크립트에서는 이 등호를 할당 연산자라고 부르며, 영어로는 Assignment Operator라고 한다. 오른쪽에 있는 피연산자(계산 대상이 되는 값)는 왼쪽에 있는 피연산자에 할당되며, 여기서 "할당"이라는 표현이 어렵다면 지정했다, 대입했다는 의미로 이해하면 된다.
let name = "자바스크립트"; // 변수 name에 '자바스크립트'라는 값을 할당
let x = 5; // 변수 x에 5라는 값을 할당
여기까지는 간단하다. 그런데 x = x - 2
라는 코드를 보면, 수학적으로는 말이 안 되는 식처럼 보일 수 있다. x와 x - 2는 수학적으로 같을 수 없기 때문이다. 하지만 자바스크립트에서는 등호(=)가 수학적인 의미가 아니라, 오른쪽에 있는 값을 계산해서 왼쪽 변수에 할당한다는 의미로 해석된다.
x = x - 2; // x에서 2를 뺀 값을 다시 x에 할당
console.log(x); // 결과는 3
이 코드를 해석해보면 다음과 같다:
x - 2
가 먼저 계산된다. 현재 x
의 값이 5이니까 5 - 2 = 3
.x
에 할당한다. 이제 x
는 3이 된다.자바스크립트에서는 할당 연산자가 있으면 항상 오른쪽을 먼저 계산하고, 그 결과를 왼쪽 변수에 할당한다는 점을 기억해 두자.
복합 할당 연산자는 할당 연산자와 다른 연산을 결합해서 더 간단하게 표현할 수 있는 연산자다. 자주 사용하는 연산을 짧고 간결하게 쓸 수 있다.
let x = 5;
x = x + 1; // x에 1을 더해서 다시 x에 할당
x += 1; // 같은 의미
위 두 줄은 같은 결과를 내지만, x += 1
이 훨씬 짧고 간결하다. 이게 바로 복합 할당 연산자다.
x = x + 2;
x += 2; // 같은 의미
x = x * 2;
x *= 2; // 같은 의미
x = x - 3;
x -= 3; // 같은 의미
x = x / 2;
x /= 2; // 같은 의미
x = x % 5;
x %= 5; // 같은 의미
위와 같이 +=
, -=
, *=
, /=
, %=
등의 복합 할당 연산자를 사용하면, 더 간결한 표현으로 연산을 처리할 수 있다.
값을 1씩 증가시키거나 감소시킬 때는 복합 할당 연산자보다 더 간단한 방법이 있다. 바로 증가 연산자(++
)와 감소 연산자(--
)다.
let score = 10;
score++; // score의 값을 1 증가시킴 (score = score + 1과 같은 의미)
score--; // score의 값을 1 감소시킴 (score = score - 1과 같은 의미)
이렇게 ++
나 --
연산자를 사용하면 변수를 1씩 더하거나 뺄 수 있다. 복합 할당 연산자보다 더 간단해서, 변수를 1씩 증감할 때 많이 사용된다.
요약
- 할당 연산자(=)는 오른쪽 값을 계산한 후 왼쪽 변수에 할당한다.
- 복합 할당 연산자를 사용하면 더하기, 빼기, 곱하기 등의 연산을 간단하게 표현할 수 있다.
- 증가(
++
)와 감소(-
) 연산자는 값을 1씩 더하거나 뺄 때 사용된다.