할당 연산자

할당 연산자는 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당합니다.

개요

기본 할당연산자는 등호(=)로, 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당합니다. 즉, x = yy의 값을 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.

브라우저 호환성

BCD tables only load in the browser

같이 보기