[JavaScript] 3. 연산자

Hyeonsik Bae·2022년 6월 7일
0

JavaScript

목록 보기
3/11
post-thumbnail

연산자

연산자는 연산을 수행하는 기호이다.

연산의 대상인 피연산자, 연산을 수행하는 연산자가 조합하여 연산자 표현식을 만든다.

이런 연산자 표현식은 하나의 값으로 평가된다.

JavaScript에서도 다양한 연산자를 제공한다.


1. 산술 연산자

산술 연산자는 피연산자의 개수에 따라 이항 산술 연산자와 단항 산술 연산자로 나뉜다.

이항 산술 연산자

이항 산술 연산자는 두 개의 피연산자를 통해 하나의 값을 만들어낸다.

이항 산술 연산자의미예제결과
+덧셈5 + 27
-뺄셈5 - 23
*곱셈5 * 315
/나눗셈5 / 31.6666666666666667
%나머지5 % 32

단항 산술 연산자

단항 산술 연산자는 하나의 피연산자에 적용된다.

이항 산술 연산자의미
++증가
--감소
+효과 없음
-양수/음수 전환

단항 산술 연산자 중 증가, 감소 연산자는 피연산자의 값에 영향을 미친다.

또한 피연산자의 전위/후위에 따라 결과가 다르다.

전위라면 연산자 적용 후 다른 연산을 하게 되고, 후위라면 다른 연산 수행 수 연산자가 적용된다.

code>

var sample = 1;
console.log(++sample);
console.log(sample++);
console.log(--sample);
console.log(sample--);

result>

2
2
2
2

+, - 연산자를 숫자에 적용하면 아래와 같은 결과를 확인할 수 있다.
code>

var sample = 10;
console.log(+sample);
console.log(-sample);
console.log(+true);
console.log(-true);

result>

10
-10
1
-1

- 연산자는 위에서 설명한 것처럼 부호가 바뀌지만 + 연산자는 아무런 효과가 없다.

+ 연산자는 피연산자 중 문자가 있을 경우에 문자열 연결 연산자로 수행된다.

code>

console.log(1 + '0');
console.log(1 + 1 + '0');
console.log(1 + '0' + 1);
console.log('0' + 1 + 1);
console.log(1 + true + '0');
console.log(1 + '0' + true);

result>

10
20
101
011
20
10true

2. 할당 연산자

할당 연산자는 표현식 우항의 결과를 좌항에 할당한다.

이항 산술 연산자의미예제동일 표현식
=할당x = 2x = 2
+=덧셈x += 2x = x + 2
-=뺄셈x -= 2x = x - 2
*=곱셈x *= 2x = x * 2
/=나눗셈x /= 2x = x / 2
%=나머지x %= 2x = x % 2

또한 = 연산자를 통해 a = b = c = 10 과 같은 연쇄 할당도 가능하다.


3. 비교 연산자

비교 연산자는 피연산자들을 비교 후, boolean 타입의 결과를 반환한다.

동등/일치 비교 연산자

연산자예제설명
==x == yx와 y 값이 같음
!=x != yx와 y 값이 다름
===x === yx와 y의 타입과 값이 같음
!==x !== yx와 y의 타입과 값이 다름

대소 관계 비교 연산자

연산자예제설명
>x > yx가 y보다 크다
<x < yx가 y보다 작다
>=x >= yx가 y보다 크거나 같다
<=x <= yx가 y보다 작거나 같다

4. 논리 연산자

논리 연산자는 피연산자들의 논리를 연산한다.

연산자설명
&&OR
||AND
!NOT

5. 지수 연산자

지수 연산자는 ES7에서 적용된 연산자이다.

좌항을 밑, 우항을 지수로 거듭 제곱한 결과를 반환한다.

밑 ** 지수 ( === Math.pow(밑, 지수))


연산자 우선순위

여러 개의 연산자가 적용된 표현식에선 연산자의 우선순위에 따라 연산의 실행순서가 결정된다.

우선순위가 높은 연산이 먼저 적용된다.

우선순위연산자
1()
2new(params), ., [], (),
3new(void)
4x++, x--
5!x, +x, -x, ++x, --x, typeof, delete
6**
7*, /, %
8+, -
9<, <=, >, >=, in, instanceof
10==, !=, ===, !==
11??
12&&
13||
14삼항 연산자
15할당 연산자
16,

소괄호로 묶는 연산이 우선되기 때문에 코드 작성 시 괄호를 통해 명시적으로 우선순위를 조절하는 것이 권장된다.

profile
현식 :)

0개의 댓글