JavaScript

[Javascript] 2. 연산자

katia 2023. 3. 16. 12:47

1. 연산자

(1) 할당 연산자

  • 할당 = : x = y 꼴에서 yx에 할당한다.
  • 더하기 복합 대입(할당) 연산 += : x += y 꼴에서 xy를 더한 값을 x에 할당한다. x = x + y와 같다.
  • 빼기 복합 대입(할당) 연산 -= : x -= y 꼴에서 xy를 뺀 값을 x에 할당한다. x = x - y와 같다.
  • 곱하기 복합 대입(할당) 연산 *= : x *= y 꼴에서 xy를 곱한 값을 x에 할당한다. x = x * y와 같다.
  • 나누기 복합 대입(할당) 연산 /= : x /= y 꼴에서 xy로 나눈 몫을 x에 할당한다. x = x / y와 같다.
  • 나머지 복합 대입(할당) 연산 %= : x %= y 꼴에서 xy로 정수부까지 나눈 나머지를 x에 할당한다. x = x % y와 같다.
  • 거듭제곱 복합 대입(할당) 연산 **= : x **= y 꼴에서 xy승 값을 x에 할당한다. x = x ** y와 같다.
  • 논리 AND 복합 대입(할당) 연산 &&= : x &&= y 꼴에서 xy가 모두 참(true)인가의 여부를 x에 할당한다. x = x && y와 같다.
  • 논리 OR 복합 대입(할당) 연산 ||= : x ||= y 꼴에서 xy 중 하나 이상의 참(true)인가의 여부를 x에 할당한다. x = x || y와 같다.
  • Nullish 병합 복합 대입(할당) 연산 ??= : x ??= y꼴에서 x가 Nullish(undefined 혹은 null)일 경우 y값을 할당하고, 아니라면 x값을 재할당한다. x = x === undefined || x === null ? y : x와 같다.

(2) 비교 연산자

  • 동등 == : x == y꼴에서 xy의 값이 같은가에 대한 여부이다. 타입 비교를 하지 않음에 유의한다.
  • 부등 != : x != y꼴에서 xy의 값이 다른가에 대한 여부이다. 타입 비교를 하지 않음에 유의한다.
  • 일치 === : x === y꼴에서 xy의 값과 타입이 같은가에 대한 여부이다.
  • 불일치 !== : x === y꼴에서 xy의 값 혹은 타입이 다른가에 대한 여부이다.
  • 초과 > : x > y꼴에서 xy보다 큰가에 대한 여부이다.
  • 미만 < : x < y꼴에서 xy보다 작은가에 대한 여부이다.
  • 이상 >= : x >= y꼴에서 xy 이상인가에 대한 여부이다.
  • 이하 <= : x <= y꼴에서 xy 이하인가에 대한 여부이다.

(3) 산출 연산자

  • 더하기 + : x + y꼴에서 xy를 더한 값이다. 단, 피연산자 중 하나 이상이 문자열일 경우 문자열 합치기를 수행한다.
  • 빼기 - : x - y꼴에서 xy를 뺀 값이다.
  • 곱하기 * : x * y꼴에서 xy를 곱한 값이다.
  • 나누기 / : x / y꼴에서 xy로 나눈 몫이다.
  • 나머지 % : x % y꼴에서 xy로 정수부까지 나눈 나머지이다.
  • 단항 부정 - : -x꼴에서 x의 부호를 뒤집는다.
  • 단항 플러스 + : +x꼴에서 x가 양수(혹은 부호 불변)임을 강조하거나, x가 숫자가 아닐때 숫자로의 변형을 시도한다.
  • 거듭제곱 ** : x ** y꼴에서 xy승이다.
  • 증가 ++
    • 전위증가 : ++x꼴에서 구문 실행전 x에 1을 더한다.
    • 후위증가 : x++꼴에서 구문 실행후 x에 1을 더한다.
  • 감소 --
    • 전위감소 : --x꼴에서 구문 실행전 x에 1을 뺀다.
    • 후위감소 : x--꼴에서 구문 실행후 x에 1을 뺀다.

(4) 논리 연산자

  • 논리 AND && : x && y꼴에서 xy가 모두 참(true)인가의 여부이다.
  • 논리 OR || : x || y꼴에서 xy중 하나라도 참(true)인가의 여부이다.
  • 논리 NOT, 부정 ! : !x꼴에서 x의 논리 값을 반전(부정)한다.

(5) 삼항 연산자

  • c ? t : f꼴에서 조건 c가 참(true)일때 값 t가, 거짓(false)일때 값 f가 된다.

(6) 기타 연산자

  • typeof : type x꼴에서 x의 타입인 문자열이다.
  • Optional 체이닝 멤버 접근자(Optional Chaining Member Access Operator) ?. : x?.y꼴에서 x가 Nullish 일 때 오류를 발생시키는 것이 아닌 x.?y의 연산 결과로 undefined를 대신하여 사용한다.
  • Nullish 병합 연산자(Nullish coalescing Operator) ?? : x ?? y꼴에서 x가 Nullish 일 경우 y값을 대신하여 사용한다.

(7) 우선순위

  • 연산자 사이에는 연산되는 우선순위가 있으며 아래는 숫자가 낮을 수록 우선순위가 높은 것으로 한다.
    1. 멤버 접근 연산자(., [])
    2. 객체 호출/생성(new, ())
    3. 증감 등(++, --, +, -, !, typeof) 단, 여기서 +-는 더하기와 빼기 연산이 아닌 부호로써의 역할로 제한한다.
    4. 거듭제곱(**)
    5. 곱하기 및 나누기 등(*, /, %)
    6. 더하기 및 빼기 (+, -)
    7. 비교 연산 일부 (>, <, >=, <=)
    8. 비교 연산 일부 (==, !=, ===, !==)
    9. 논리 AND(&&)
    10. 논리 OR(||)
    11. 삼항 연산(~ ? ~ : ~)
    12. 할당 연산(=, +=, -=, *=, /=, %=, &&=, ||=, ??= 등)
    13. 쉼표 연산(,)

'JavaScript' 카테고리의 다른 글

[Javascript] 6. 배열(Array)  (0) 2023.03.17
[Javascript] 5. 함수(Function)  (0) 2023.03.17
[Javascript] 4. 반복문  (0) 2023.03.17
[Javascript] 3. 조건문  (0) 2023.03.16
[Javascript] 1. 변수와 상수  (0) 2023.03.16