할당 연산자는 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당합니다.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
개요
기본 할당연산자는 등호(=
)로, 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당합니다. 즉, x = y
는 y
의 값을 x
에 할당힙니다. 다른 할당 연산자는 보통 표준 연산의 축약형으로, 다음 표에서 종류와 예시를 확인할 수 있습니다.
이름 | 단축 연산자 | 의미 |
---|---|---|
할당 | x = y |
x = y |
덧셈 할당 | x += y |
x = x + y |
뺄셈 할당 | x -= y |
x = x - y |
곱셈 할당 | x *= y |
x = x * y |
나눗셈 할당 | x /= y |
x = x / y |
나머지 연산 할당 | x %= y |
x = x % y |
지수 연산 할당 | x **= y |
x = x ** y |
왼쪽 시프트 할당 | x <<= y |
x = x << y |
오른쪽 시프트 할당 | x >>= y |
x = x >> y |
부호없는 오른쪽 시프트 할당 | x >>>= y |
x = x >>> y |
비트 AND 할당 | x &= y |
x = x & y |
비트 XOR 할당 | x ^= y |
x = x ^ y |
비트 OR 할당 | x |= y |
x = x | y |
할당
단순 할당 연산자는 값을 변수에 할당합니다. 할당 연산자는 할당의 결과값으로 평가됩니다. 할당 연산자를 연속해서 사용해, 다수의 변수에 하나의 값을 한꺼번에 할당할 수 있습니다. 예제를 참고하세요.
구문
연산자: x = y
예제
// 다음과 같은 변수를 가정
// x = 5
// y = 10
// z = 25
x = y // x는 10
x = y = z // x, y, z 모두 25
덧셈 할당
덧셈 할당 연산자는 변수에 오른쪽 피연산자의 값을 더하고, 그 결과를 변수에 할당합니다. 두 피연산자의 자료형이 덧셈 할당 연산자의 행동을 결정합니다. 덧셈 연산자처럼 합 또는 연결이 가능합니다. 자세한 내용은 덧셈 연산자를 참고하세요.
구문
연산자: x += y 의미: x = x + y
예제
// 다음과 같은 변수를 가정
// foo = "foo"
// bar = 5
// baz = true
// Number + Number -> 합
bar += 2 // 7
// Boolean + Number -> 합
baz += 1 // 2
// Boolean + Boolean -> 합
baz += false // 1
// Number + String -> 연결
bar += 'foo' // "5foo"
// String + Boolean -> 연결
foo += false // "foofalse"
// String + String -> 연결
foo += 'bar' // "foobar"
뺄셈 할당
뺄셈 할당 연산자는 변수에서 오른쪽 피연산자의 값을 빼고, 그 결과를 변수에 할당합니다. 더 자세한 내용은 뺄셈 연산자를 참고하세요.
구문
연산자: x -= y 의미: x = x - y
예제
// 다음과 같은 변수를 가정
// bar = 5
bar -= 2 // 3
bar -= "foo" // NaN
곱셈 할당
곱셈 할당 연산자는 변수에 오른쪽 피연산자의 값을 곱하고, 그 결과를 변수에 할당합니다. 더 자세한 내용은 곱셈 연산자를 참고하세요.
구문
연산자: x *= y 의미: x = x * y
예제
// 다음과 같은 변수를 가정
// bar = 5
bar *= 2 // 10
bar *= "foo" // NaN
나눗셈 할당
나눗셈 할당 연산자는 변수를 오른쪽 피연산자로 나누고, 그 결과를 변수에 할당합니다. 더 자세한 내용은 나눗셈 연산자를 참고하세요.
구문
연산자: x /= y 의미: x = x / y
예제
// 다음과 같은 변수를 가정
// bar = 5
bar /= 2 // 2.5
bar /= "foo" // NaN
bar /= 0 // Infinity
나머지 연산 할당
나머지 연산 할당은 변수를 오른쪽 피연산자로 나눈 나머지를 변수에 할당합니다. 더 자세한 내용은 나머지 연산자를 참고하세요.
구문
연산자: x %= y 의미: x = x % y
예제
// 다음과 같은 변수를 가정
// bar = 5
bar %= 2 // 1
bar %= "foo" // NaN
bar %= 0 // NaN
거듭제곱 할당
거듭제곱 할당 연산자는 변수를 오른쪽 피연산자만큼 거듭제곱한 결과를 변수에 할당합니다. 자세한 내용은 거듭제곱 연산자를 참고하세요.
구문
연산자: x **= y 의미: x = x ** y
예제
// 다음과 같은 변수를 가정
// bar = 5
bar **= 2 // 25
bar **= "foo" // NaN
왼쪽 시프트 할당
왼쪽 시프트 할당 연산자는 변수의 비트를 오른쪽 피연산자의 값만큼 왼쪽으로 이동하고, 그 결과를 변수에 할당합니다. 더 자세한 내용은 left shift operator를 참고하세요.
구문
연산자: x <<= y 의미: x = x << y
예제
var bar = 5; // (00000000000000000000000000000101)
bar <<= 2; // 20 (00000000000000000000000000010100)
오른쪽 시프트 할당
오른쪽 시프트 할당 연산자는 변수의 비트를 오른쪽 피연산자의 값만큼 우측으로 이동하고, 그 결과를 변수에 할당합니다. 자세한 내용은 right shift operator를 참고하세요.
구문
연산자: x >>= y 의미: x = x >> y
예제
var bar = 5; // (00000000000000000000000000000101)
bar >>= 2; // 1 (00000000000000000000000000000001)
var bar -5; // (-00000000000000000000000000000101)
bar >>= 2; // -2 (-00000000000000000000000000000010)
부호 없는 오른쪽 시프트 할당
부호 없는 오른쪽 시프트 할당 연산자는 변수의 비트를 오른쪽 피연산자의 값만큼 우측으로 이동하고, 그 결과를 변수에 할당합니다. 자세한 내용은 unsigned right shift operator을 참고하세요.
구문
연산자: x >>>= y 의미: x = x >>> y
예제
var bar = 5; // (00000000000000000000000000000101)
bar >>>= 2; // 1 (00000000000000000000000000000001)
var bar = -5; // (-00000000000000000000000000000101)
bar >>>= 2; // 1073741822 (00111111111111111111111111111110)
비트 AND 할당
비트 AND 할당 연산자는 양쪽 피연산자의 이진 표현을 AND 연산한 후, 그 결과를 변수에 할당합니다. 자세한 내용은bitwise AND operator을 참고하세요.
구문
연산자: x &= y 의미: x = x & y
예제
var bar = 5;
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
bar &= 2; // 0
비트 XOR 할당
비트 XOR 할당 연산자는 양쪽 피연산자의 이진 표현을 XOR 연산한 후, 그 결과를 변수에 할당합니다. 자세한 내용은 bitwise XOR operator를 참고하세요.
구문
연산자: x ^= y 의미: x = x ^ y
예제
var bar = 5;
bar ^= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111
비트 OR 할당
비트 OR 할당 연산자는 양쪽 피연산자의 이진 표현을 OR 연산한 후, 그 결과를 변수에 할당합니다. 자세한 내용은 bitwise OR operator를 참고하세요.
문법
연산자: x |= y 의미: x = x | y
예제
var bar = 5;
bar |= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111
예제
다른 할당 연산자를 갖는 왼쪽 피연산자
드물게, 할당 연산자(예: x += y
)와 그 의미를 나타낸 표현(x = x + y
)이 동일하지 않은 경우가 있습니다. 할당 연산자의 왼쪽 피연산자가 다른 할당 연산자를 포함할 때, 왼쪽 피연산자는 한 번만 평가됩니다. 예를 들면 다음과 같습니다.
a[i++] += 5 // i는 한 번만 평가됨
a[i++] = a[i++] + 5 // i는 두 번 평가됨
명세
브라우저 호환성
BCD tables only load in the browser