[JavaScript]operator

연산자

피연산자(operand)는 연산자가 연산을 수행하는 대상이다. (인수(argument) 라고 하기도 한다.)
5 * 2 가 있다면 * 연산자의 앞 5와 뒤 2가 각각 피연산자가 된다.

모든 연산자는 값을 반환한다.

단항 연산자

  • -

  • 연산자는 단항 뺄셈 연산자 이면서 이항 연산자이기도 하다.

  • 연산자는 단항 덧셈 연산자 이면서 이상 연산자이기도 하고, 연결 연산자 이기도 하다. 또한 숫자로 형 변환을 수행할 수도 있다.

연산자 우선순위

  • 우선순위 테이블

Operator precedence

증감연산자

++, —

연산자의 위치에 따라 값이 변한다.

  • 전위형 ++cnt = 먼저 더한 후 cnt를 반환(더하기가 앞에 있으니 먼저 더하고 cnt 반환)
  • 휘위형 cnt++ = cnt를 반환 후 더함(cnt가 앞에 있으니 cnt를 반환하고 더함)

즉 연산자가 변수의 어디에 있냐를 보면 쉽게 이해할 수 있다.

비트연산자(bitwise operator)

인수를 32비트 정수로 변환하여 이진 연산을 수행

  • 비트 AND - &
  • 비트 OR - |
  • 비트 XOR - ^
  • 비트 NOT - ~
  • 왼쪽 쉬프트(Left Shift) - <<
  • 오른쪽 쉬프트(Right Shift) - >>
  • 부호 없는 오른쪽 쉬프트(Zero-Fill Shift) - >>>

잘 사용할 일이 없어 그냥 넘어가는데, 필요하다면 MDN 사이트를 이용하라

복합 할당 연산자

let n = 2;
n = n + 5;
n = n * 2;

위 예제처럼 계산한 값을 같은 변수에 넣어야 할 경우가 많다. 이럴 때 사용 가능한 것이 복합 할당 연산자이다.

+= , *= 연산자를 이용해 위 식을 바꿔보자.

let n = 2;
n += 5;
n *= 2;

/= , -= 도 사용 가능

우선 순위에 의한 계산순서 연습

let n = 2;
n *= 3 + 5; // 결과값 구하기

쉼표 연산자

쉼표 연산자 , 는 여러 표현식을 코드 한 줄에서 평가할 수 있게 해준다. 단 마지막 표현식만 반환한다는 점에 주의 할 것

let a = (1 + 2, 3 + 4);
console.log(a); // 7 (3 + 4)의 결과만 반환

1 + 2는 평가되어 반환되지만, 뒤에 연달아 나오는 3 + 4가 다시 a에 반환되에 7의 결과가 나오는 것

쉼표 연산자를 사용하는 대표적인 것이 for

for (a = 1, b = 3, c = a * b; a < 10; a++) {
...
}

+ Recent posts