본문 바로가기

HTML / CSS / Java Script

[JS] 자바스크립트 연산자 종류와 우선순위 (다항 ~ 대입 연산자)

연산


연산자 종류와 우선순위

프로그래밍 언어에도 여러 가지의 연산자가 함께 있는 경우 우선수위가 있어요
연산자를 기준으로 피연산자의 갯수가 많을수록 우선순위가 낮어집니다 ;;

연산자우선순위

- 다항연산자 : !(논리부정), ~(비트부정), + -(부호), ++ -- (증감연산자)
- 산순연산자 : *(곱하기), /(나누기), %(나머지연산자), +(더하기), -(빼기)
- 시프트연산자 : <<, >>, >>>
- 관계연산자 : <, <=, >, >=, ==, !=
- 논리연산자 : 비트논리연산 &, ^, | 일반논리연산 &&, ||
- 조건연산자 : ?, :
- 대입연산자 : =, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, ^=, |=

다항연산자에서 ---> 대입연산자순으로 순위가 낮아짐



단항 연산자는 연산자를 기준으로 피연산자가 하나인 연산자를 의미하고 연산의 우선순위가 가장높음

!(논리부정)
논리값을 부정 - true는 false로 false는 true로 바낌

~(비트부정)
해당 데이ㅓ의 각 비트를 0은 1로 1은 0으로 바낌

+ -(부호)
부호변경

++ -- (증감연산자)
++ : 값을 1증감시킴, -- : 값을 1감소시킴



산술 연산자는 일반적인 사칙연산에 사용되는 연산자임

+, -, *, / (더하기, 빼기, 곱하기, 나누기) 일반적인 사칙연산
% 오른쪽 수로 왼쪽 수를 나눈후 나머지값(10%3 이면 10을 3으로 나누면 9지만 나머지값인 1)
+ 숫자간의 연산에는 더하기로 적용되고 문자열 연산에는 연결의 의미로 사용됨



왼쪽으로 1비트씩 이동할때마다 값이 2배씩 증가하고, 오른족으로 1비트씩 이동할때마다 1/2씩 감소함
하지만 오버플로가 발생할때 자리가 잘려 나갈때는 예외 그리고 >>와 >>>는 양수일 경우 결과가 같지만 음수일경우에는 결과가 달라짐

<<
주어진 비트만큼 왼쪽으로 이동, 새로 진입하는 비트는 0

>>
주어진 비트만큼 오른쪽으로 이동, 새로 진입하는 비트는 비트는 부호 비트와 동일

>>>
주어진 비트만큼 오른쪽으로 이동, 새로집입하는 비트는 0


관계 연산자는 두수 사이의 관계가 참(true)인지 거짓(false)인지 판단해 주는 연산자임

< (크다) <= (크거나같다)
> (작다) <= (작거나같다)
== (같다) != (같지않다)



논리 연산자는 논리를 계산하여 참인지 거짓인지 나타내는 연산자임

AND(&, &&) 둘다 참일때만 참
OR(|, ||) 둘중 하나만 참이어도 참
XOR(^) 둘의 논리값이 서로 다를때 참



조건연산자는 조건식의 결과에 따라 수행되는 값을 결정하는 연사자임

A = (조건)? A:C 조건이 참일 경우 A에 B를 대입하고 거짓일때는 C를 대입함



대입 연산자는 변수에 값을 대입하는 연산자임

= (값대입)
+=, -+, *=, /= (해당 연상을 수행한 값을 대입)