연산자 종류
연산자(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이 됨. |
'📌 Front End > └ JavaScript' 카테고리의 다른 글
[JavaScript] 자바스크립트 다양한 데이터 출력 (0) | 2024.06.07 |
---|---|
[JavaScript] 화면출력 함수 document.write(), with(document){}, alert(), confirm(), prompt(), console.log() (0) | 2024.06.07 |
[JavaScript] 자바스크립트 형변환(Type Casting) - 자동, 강제 형변환 (0) | 2024.06.05 |
[JavaScript] 자바스크립트 특수문자 이스케이프(Escape) 표현 (0) | 2024.06.05 |
[JavaScript] 자바스크립트 템플릿 리터럴(Template Literal) - 백틱(`), ${ }을 이용한 문자열 표기법 (1) | 2024.06.04 |