연산자의 종류
JavaScript에서 사용할 수 있는 연산자의 종류는 다음과 같다.
[산술 연산자, 증감 연산자, 비교 연산자, 논리 연산자, 상함 연산자, Nullish 연산자, 비트 연산자 , 대입 연산자]
이 글에서는 [산술 연산자, 증감 연산자, 비교 연산자, 논리 연산자]만 작성해놓았다.
산술 연산자
산술 연산자는 다음과 같다.
[+ : 덧셈 연산자, - :뺄셈 연산자, * : 곱셈 연산자, / : 나눗셈 연산자, % :나머지 연산자, ** : 지수 연산자]
console.log(10%3); // 10을 3으로 나눴을때의 나머지 1이 출력된다.
console.log(2**3); // 2³의 계산값인 8이 출력된다.
증감 연산자
증감 연산자는 피연산자를 1씩 증가 혹은 감소시킬 때 사용하는 연산자이다.
++(피연산자) | 먼저 피연산자의 값을 1 증가시킨 후에 해당 연산을 진행함. |
(피연산자)++ | 먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1 증가시킴. |
--(피연산자) | 먼저 피연산자의 값을 1 감소시킨 후에 해당 연산을 진행함. |
(피연산자)-- | 먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1 감소시킴. |
let x = 3;
console.log(++x + 4); // 피연산자 x에 1이 증가하여 4가 되고, 연산이 진행되어 8이 출력됨
let y = 4;
console.log(y-- + 4); // 연산이 진행되어 8이 출력되고 변수 y는 1이 감소하여 3이된다.
비교 연산자
비교 연산자는 피연산자 사이의 상대적인 크기를 판단하여, Boolean데이터타입의 값인 참(true) 혹은 거짓(false)을 반환한다.
비교 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.
==(동등 연산자) | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같으면 참을 반환함. |
===(일치 연산자) | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같고, 같은 타입이면 참을 반환함. |
!=(부등 연산자) | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않으면 참을 반환함. |
!==(불일치 연산자) | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않거나, 타입이 다르면 참을 반환함. |
> | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크면 참을 반환함. |
>= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같으면 참을 반환함. |
< | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작으면 참을 반환함. |
<= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같으면 참을 반환함. |
alert(null == undefined); // true가 출력됨
alert(null === undefined); // false가 출력됨
alert(true == 1); // true가 출력됨
alert(true === 1); // false가 출력됨
alert(true == '1'); // true가 출력됨
alert(true === '1'); // false가 출력됨
alert(false == 0); // true가 출력됨
alert(false === 0); // false가 출력됨
alert(0 === -0); // true가 출력됨
alert(NaN === NaN); // false가 출력됨
이러한 예시를 보면서 알 수 있는, 외부에서 배워온 추가적인 정보는 다음과 같다.
- null은 개발자가 의도하여 값이 없는 것이고, undefined는 개발자가 의도않은 채 정의되지 않은 값이다. 이 둘 역시 false와 같은 값으로 취급하지만, 같은 데이터타입으로 보지는 않는다.
- 동등연산자는 1과 true를, 0과 false를 같은 값으로 취급하지만, 같은 데이터타입으로 보지는 않는다.
- NaN은 0/0의 결과와 같이 정의되지 않는 수이다. false와 같은 값으로 취급하지만, 같은 데이터타입으로 보지는 않는다.
- let a; / const a; -> "아무런 리터럴을 저장하지 않았으니 undefined와 같다." -> false와 같은 값으로 취급하지만, 같은 데이터타입으로 보지는 않는다.
논리 연산자
논리 연산자는 주어진 논리식을 판단하여, 참(true)과 거짓(false)을 반환한다.
&& 연산자와 || 연산자는 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.
! 연산자는 피연산자가 단 하나뿐인 단항 연산자이며, 피연산자의 결합 방향은 && 연산자와 || 연산자와는 다르게 오른쪽에서 왼쪽이다.
&&(and 연산자) | 논리식이 모두 참이면 참을 반환함. (논리 AND 연산) |
||(or 연산자) | 논리식 중에서 하나라도 참이면 참을 반환함. (논리 OR 연산) |
!(not 연산자) | '!'는 부정의 의미로, Boolean의 값을 역전시킨다. true를 false로 false를 true로 만든다. not 연산자라고 불린다. |
&& 연산자를 이용한 사례를 살펴보자.
id = prompt('아이디를 입력해주세요.');
password = prompt('비밀번호를 입력해주세요.');
if(id=='밀키스' && password=='111111'){
alert('인증되었습니다.');
} else {
alert('아이디 혹은 비밀번호를 틀렸습니다.');
}
|| 연산자를 이용한 사례를 살펴보자.
id = prompt('아이디를 입력해주십시오.')
password = prompt('비밀번호를 입력해주십시오.')
if((id=='콜라' || id=='환타' || id=='밀키스') && password=='12345'){
alert('인증되었습니다.');
} else {
alert('인증되지 않았습니다.');
}
'자바스크립트 개념정리' 카테고리의 다른 글
표현식 & 문 (모던 자바스크립드 Deep Dive 5장) (0) | 2022.10.14 |
---|---|
배열(array) (0) | 2022.10.12 |
함수(function) (0) | 2022.10.12 |
조건문(Conditional statements) (0) | 2022.10.11 |
변수선언 & 상수선언 (0) | 2022.10.07 |