할당 연산자는 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당합니다.
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는 두 번 평가됨
명세
| Specification |
|---|
| ECMAScript (ECMA-262) The definition of 'Assignment operators' in that specification. |
브라우저 호환성
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Assignment (x = y) | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 3 | Opera Full support 3 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 | nodejs Full support 0.1.100 |
Legend
- Full support
- Full support