| 표현식
표현식(Expression)이란 값으로 평가될 수 있는 모든 문장(statement)을 표현식이라고 부른며 표현식은 주로 연산자, 식별자, 리터럴 등으로 구성된다. 아래 사진에 나온 예시가 표현식이라고 할 수 있다.
| 연산자
연산자(operator)는 표현식의 일종으로 볼 수 있는데 그 종류로는 산술, 비교, 할당, 논리, 문자열, 지수 연산 등이 있다. 연산자를 통해 표현식을 표현할 때는 연산의 대상이 되는 피연산자와 연산자로 이루어진다. JavaScript에서는 많은 연산자를 제공하는데 그 중 자주 사용되는 연산자에 대해 알아보자.
|산술 연산자(arithmetic operator)
산술 연산자는 연산에서 가장 기본이라고 할 수 있는 사칙연산을 다루는 연산자이다. 산술 연산자에는 피연산자에 개수에 따라 단항 산술 연산자, 이항 산술 연산자 이렇게 두가지 타입으로 나뉜다. 단어 그대로 단항 산술 연산자는 피연사자가 한 개, 이항 산술 연산자는 두 개인것을 의미한다.
|이항 산술 연산자
피연산자의 개수가 두 개인 산술 연산자로 우리가 흔히들 알고 있는 덧셈, 뺄셈, 곱셉 등의 사칙연산을 수행한다.
이항 산술 연산자 | 설명 |
+ | 덧셈 |
- | 뺄셈 |
* | 곱셉 |
/ | 나눗셈 |
% | 나머 |
|단항 산술 연산자
피연산자의 개수가 한 개인 산술 연산자로 하나의 피연산자에 대해 증가, 감소, 반전, 제곱 등의 연산을 수행한다.
단항 산술 연산자 | 설명 |
++ | 피연산자 값에 1을 증가시킨다 |
-- | 피연산자 값에 1을 감소시킨다 |
+ | 아무런 변화가 없다 |
- | 부호를 반전 시킨다 (+이면 -로, -이면 +로 ) |
|할당 연산자(assignment operator)
할당 연산자는 변수에 값을 대입하는데 사용하는 연산자로 우항에 위치한 피연산자 값의 연산 결과를 좌항에 있는 변수에 할당한다.
할당 연산자 | 설명 |
= | num = 1 |
+= | num += 1 또는 num = num + 1 |
-= | num -= 1 또는 num = num - 1 |
*= | num *= 1 또는 num = num * 1 |
/= | num /= 1 또는 num = num / 1 |
%= | num %= 1 또는 num = num % 1 |
|비교 연산자(comparison operator)
비교 연산자는 피연산자들을 비교하고 그에 대한 결과값을 불린 값으로 반환하는 연산자이다.
비교 연산자 | 설명 |
== | 피연산자의 값이 같으면 true 반환 |
=== | 피연산자의 값과 타입이 같으면 true 반환 |
!= | 피연산자의 값이 다르면 true 반환 |
!== | 피연산자의 값과 타입이 다르면 true 반환 |
> | 왼쪽 피연산자가 오른쪽 피연산자보다 크면 true 반환 |
< | 왼쪽 피연산자가 오른쪽 피연산자보다 작으면 true 반환 |
>= | 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 true 반환 |
<= | 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같으면 true 반환 |
|논리 연산자(logical operator)
논리 연산자는 피연산자들을 논리 연산하여 그 결과 값을 반환하는 주로 불린 값에 대한 연산을 하지만 불린 값이 아니여도 연산이 가능하다.
논리 연산자 | 설명 |
|| | 논리합(OR) 연산이다. 피연산자 중 하나만 true여도 true를 반환한다 |
&& | 논리곱(AND) 연산이다. 피연산자 둘 다 true여야 true를 반환한다 |
! | 부정(NOT) 연산이다. 피연산자의 반대 값을 반환한다(true이면 false 반환, false면 true반환) |
|쉼표 연산자
쉼표 연산자는 왼쪽에 위치한 피연산자부터 차례대로 모두 평가한 후 마지막 피연산자의 값을 반환하는 연산자이다. for 반복문에서 여러 변수를 동시에 반복을 진행할 때 주로 사용한다.
|삼항 연산자(ternary operator)
앞서 소개한 연산자들은 모두 이항 미만의 피연사자에 대해서 연산을 진행한다. 하지만 삼항 연산자는 JavaScript에서 유일하게 세 개의 피연산자를 받은 연산자로 조건식의 결과에 따라 지정한 값 중 하나를 반환하는 연산자로 다음과 같은 형태를 가진다.
|연산자 우선순위
앞서 설명한 연산자외에도 피연산자의 데이터 타입을 반환하는 typeof 연산자, 프로퍼티의 유무를 확인하는 in 연산자 등 여러가지 연산자들이 존재한다. 이러한 연산자들을 사용할 때 연산의 우선순위가 있어야 보다 정확하게 연산이 가능하다. 다음 그림은 연산자 우선순위을 나타낸 그림이다.
우선순위 | 연산자 |
1 | () : 그룹 연산자 |
2 | ++, --, ! : 단항 산술 연산자 |
3 | ** : 이항 산술 연산자 |
4 | *, /, % : 이항 산술 연산자 |
5 | +, - : 이항 산술 연산자 |
6 | <, <=, >, >=, in : 대소 비교 연산자, in 연산자 |
7 | ==, ===, !=, !== : 대소 비교 연산자 외 비교연산자 |
8 | && : 논리곱 연산자 |
9 | || : 논리합 연산자 |
10 | ... ? ... : ... : 삼항 연산자 |
11 | =, +=, -=, *=, /=, %= : 할당 연산자 |
12 | , : 쉼표 연산자 |
'JavaScript' 카테고리의 다른 글
[JavaScript] 객체 (0) | 2023.07.22 |
---|---|
[JavaScript] 제어문 (0) | 2023.07.14 |
[JavaScript] 변수와 데이터 타입 (0) | 2023.07.02 |