본문 바로가기
📌 Front End/└ JavaScript

[JavaScript] 자바스크립트 연산자(Operator) - 단항, 산술, 비교, 논리, 대입(복합대입), 조건(삼항), 문자열, 비트

by 쫄리_ 2024. 6. 5.
728x90
반응형

연산자 종류

연산자(Operators)란 데이터를 원하는 형태로 변경 및 판단하기 위한 코드를 의미한다.

 

  • 단항 연산자 (++, --, +, -)
  • 산술 연산자 (+, -, *, /, %)
  • 비교 연산자 (>, >=, <, <=, ==, ===, !=, !==)
  • 논리 연산자 (||, &&, !)
  • 대입(복합대입) 연산자 (=, +=, -=, *=, /=, %=)
  • 조건(삼항) 연산자 (조건식 ? ture반환값1 : false반환값2)
  • 문자열 연산자 (+)
  • 비트 연산자 (&, |, ^, ~, <<, >>, >>>)

연산자 우선순위

괄호()가 가장 높은 우선 순위를 갖고

단항, 산술, 비교, 논리, 대입, 비트 순서로 우선순위를 갖습니다.

 

1. ()
2. 단항 연산자 (++, --, !)
3. 산술 연산자 (*, /, %, +, -)
4. 비교 연산자 (>, >=, <, <=, ==, ===, !=, !==)
5. 논리 연산자 (&&, ||)
6. 대입(복합 대입) 연산자 (=, +=, -=, *=, /=, %=)

① 최 - 최우선 연산자   ()   .(닷 연산자)
② 단 - 단항 연산자 : 연산자를 기준으로 항(피연산자)이 한개인 연산자 → 양수,음수
③ 산 - 산술 연산자
④ 쉬 - 쉬프트 연산자 (비트 연산자)
⑤ 관 - 관계 연산자 (비교 연산자)
⑥ 논 - 논리 연산자
⑦ 삼 - 삼항 연산자
⑧ 대 - 대입 연산자, = : 오른쪽에 있는 값을 왼쪽 저장공간에 대입한다.
                                      let num1 = 10 + 10;

👉 단항 연산자 (++, --, +, -)

단항 산술 연산자는 1개의 피연산자를 대상으로 연산한다.
증가/감소(++/–) 연산자는 피연산자의 값을 변경하는 부수 효과가 있다. 

다시 말해, 증가/감소 연산을 하면 피연산자의 값이 바뀐다.

연산자 의미
++ 증가
-- 감소
+ 어떠한 효과도 없다. 음수를 양수로 반전하지도 않는다.
- 양수를 음수로 음수를 양수로 반전한 값을 반환한다.

🔎 증감 연산자

연산자 의미
++a 1을 증가시키고 증가한 후 값을 반환
--a 1을 감소시키고 감소한 후 값을 반환
a++ 1을 증가시키고 증가하기 전 값을 반환
a-- 1을 감소시키고 감소하기 전 값을 반환

 

사용예시

num = 10 일때
연산식 result 값 num 값
result = ++num 11 11
result = --num  9 9
result = num++ 11 10
result = num-- 10 9

👉 산술 연산자 (+, -, *, /, %)

이항 산술 연산자는 2개의 피연산자를 대상으로 연산하여 숫자 타입의 값을 만든다.

연산자 의미
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
(왼쪽 피연산자를 오른쪽 피연산자로 나눗셈 연산)
% 나머지
(왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지를 구하는 연산)

👉 비교 연산자 (>, >=, <, <=, ==, ===, !=, !==)

비교 연산자(Comparison Operator)는 좌항과 우항의 피연산자를 비교하여 불리언 값을 반환한다. 
if 문이나 for 문과 같은 제어문의 조건식에서 주로 사용한다.

연산자 예시 의미
> a > b a가 b보다 크다 (초과)
< a < b a가 b보다 작다 (미만)
>= a >= b a가 b보다 크거나 같다 (이상)
<= a <= b a가 b보다 작거나 같다 (이하)
== a == b a와 b의 값이 같다
=== a === b a와 b의 값이 같고 타입도 같아야 true
!= a != b a와 b의 값이 다르다
!== a !== b a와 b의 값이 다르고 타입도 달라야 true

👉 논리 연산자 (||, &&, !)

논리 연산자(Logical Operator)는 우항과 좌항의 피연산자(부정 논리 연산자의 경우, 우항의 피연산자)를 논리 연산한다.
논리 부정(!) 연산자는 언제나 불리언 값을 반환한다. 
하지만 논리합(||) 연산자와 논리곱(&&) 연산자는 
일반적으로 불리언 값을 반환하지만 반드시 불리언 값을 반환해야 하는 것은 아니다.

연산자 의미
|| 논리 합 (OR)
논리식 중에서 하나라도 참이면 참을 반환
&& 논리 곱 (AND)
논리식이 모두 참이면 참을 반환
! 부정 (NOT)
논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환

조건식이 true라면 false로 바꾼다.
조건식이 false라면 true로 바꾼다.

👉 대입(복합대입) 연산자 (=, +=, -=, *=, /=, %=)

할당 연산자(Assignment Operator)는 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당한다. 
할당 연산자는 좌항의 변수에 값을 할당하므로 부수 효과가 있다.

연산자 예시 의미
= a = b a에 b를 대입
+= a += b a에 b값 더해 대입

let number = 10;
number += 20; ▶ number = number + 20; (30)
-= a -= b a에 b값을 빼서 대입

let number = 100;
number -= 20; ▶ number = number - 20; (80)
*= a *= b a에 b값을 곱해서 대입
/= a /= b a에 b값을 나누고 대입
%= a %= b a에 b값을 나눈 나머지값 대입
** a **= b a에 b값의 제곱값을 대입

👉 조건(삼항) 연산자 (조건식 ? ture반환값1 : false반환값2)

삼항 조건 연산자(ternary operator)는 조건식의 평가 결과에 따라 반환할 값을 결정한다.

삼항 연산자
변수 = 조건식 ? 반환값1 : 반환값2
조건식 true 반환값1이 변수에 저장
조건식 false 반환값2가 변수에 저장

👉 문자열 연산자 (+)

+ 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다. 
그 외의 경우는 덧셈 연산자로 동작한다.

연산자 예시 의미
+ "a" + "b" 문자열 연결 ("ab" 반환)

👉 비트 연산자 (&, |, ^, ~, <<, >>, >>>)

비트 연산자는 피연산자를 32비트의 집합으로 취급하고,

비트 단위로 AND, OR, XOR 등의 비트 연산을 수행합니다.

연산자 의미
& 대응되는 비트가 모두 1이면 1을 반환 
(비트 AND 연산)
| 대응되는 비트 중에서 하나라도 1이면 1을 반환 
(비트 OR 연산)
^ 대응되는 비트가 서로 다르면 1을 반환 
(비트 XOR 연산)
~ 비트를 1이면 0으로, 0이면 1로 반전시킴 
(비트 NOT 연산)
<< 지정한 수만큼 비트를 전부 왼쪽으로 이동시킴 
(left shift 연산)
>> 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴 
(right shift 연산)
>>> 지정한 수만큼 비트를 전부 오른쪽으로 이동시키며, 새로운 비트는 전부 0이 됨.

 

 

 

728x90
반응형