반응형
연산자
1. 산술 연산자
- 사칙 연산 및 기본적인 연산을 하는 연산자이다.
산술연산자 | 설명 |
+ | 덧셈 |
- | 뺄셈 |
/ | 나누기 |
* | 곱하기 |
% | 나머지값 |
** | 거듭제곱 |
[예시]
<script>
'use strict';
const num1 = Number(prompt('첫번째 숫자를 입력하세요.'));
const num2 = Number(prompt('두번째 숫자를 입력하세요.'));
let result = num1 + num2;
console.log(`num1 + num2 = ${result}`);
result = num1 - num2;
console.log(`num1 - num2 = ${result}`);
result = num1 * num2;
console.log(`num1 * num2 = ${result}`);
result = num1 / num2;
console.log(`num1 / num2 = ${result}`);
result = num1 % num2;
console.log(`num1 % num2 = ${result}`);
result = num1 ** num2;
console.log(`num1 ** num2 = ${result}`);
</script>
2. 비교연산자
- 피연산자 사이의 상대적인 크기를 판단하여 참 또는 거짓을 반환한다.
비교연산자 | 설명 |
> | 크다 |
< | 작다 |
>= | 크거나 같다 |
<= | 작거나 같다 |
== | 같다 (타입이 달라도 값이 같으면 참) |
=== | 같다 (타입과 값이 모두 같아야 참) |
!= | 다르다 (값과 타입 모두 다르면 false, 값이 다르고 타입이 같으면 true) |
!== | 다르다 (값, 타입 둘중 하나만 다르면 true) |
* ==(동등 연산자)와 ===(일치연산자)에 대해 좀 더 알아보자
동등 연산자(==)와 일치 연산자(===,)는 모두 두 개의 피연산자가 서로 같은지를 비교해준다.
두 연산자 모두 피연산자의 타입을 가리지는 않지만, 그 같음을 정의하는 기준이 조금 다르다.
비교연산자 | 설명 |
동등 연산자(==) | 두 피연산자의 값이 서로 같으면 참(true)을 반환한다. 만약 두 피연산자의 타입이 서로 다르면, 비교를 위해 강제로 타입을 같게 변환한다. |
일치 연산자(===) | 타입의 변환 없이 두 피연산자의 값이 같고, 타입도 같아야만 참(true)을 반환한다. |
const num1 = 3;
const str1 = "3";
let result = num1 == str1;
console.log(`num1 == str1 : ${result}`);
//타입이 서로 다르므로 타입을 서로 같게 한 후 비교를 하므로 true
result = num1 === str1;
console.log(`num1 === str1 : ${result}`);
//타입이 서로 다르므로 false
자바스크립트에서 비교 연산자는 피연산자의 타입에 따라 두 가지 기준으로 비교를 진행한다.
1. 피연산자가 둘 다 숫자면, 해당 숫자를 서로 비교
2. 피연산자가 둘 다 문자열이면, 문자열의 첫 번째 문자부터 알파벳 순서대로(아스키코드) 비교
[예시]
const str2 = "abcde";
const str3 = "bcd";
result = str2 <= str3;
console.log(`str2 <= str3 : ${result}`); //true
//'a'의 아스키코드 값은 97이고 'b'의 아스키코드 값은 98로
//str2('abcde')가 더 작기때문에 true이다.
3. 대입 연산자
- 변수나 상수에 값을 대입할 때 사용하는 연산자이다.
대입연산자 | 설명 |
= | 우측의 값을 좌측(변수 또는 상수)에 대입 |
+= | 우측의 값을 좌측(변수)의 값과 더한 후 좌측(변수)에 대입 |
-= | 우측의 값을 좌측(변수)의 값과 뺀 후 좌측(변수)에 대입 |
*= | 우측의 값을 좌측(변수)의 값과 곱한 후 좌측(변수)에 대입 |
/= | 우측의 값을 좌측(변수)의 값과 나눈 후 좌측(변수)에 대입 |
%= | 우측의 값을 좌측(변수)의 값과 나눈 후, 나머지값을 좌측(변수)에 대입 |
[예시]
num1 += 10; // == num1 = num1 + 10;
num1 -= 10; // == num1 = num1 - 10;
num1 *= 10; // == num1 = num1 * 10;
4. 증감 연산자
- 증감 연산자는 1씩 값을 증가시키거나 감소시킬 때 사용
- 연산자의 위치가 어디에 있는지에 따라 결과가 달라질 수 있음
증감연산자 | 설명 |
변수++ | 먼저 연산을 수행한 후, 변수의 값을 1증가 시킴 |
변수-- | 먼저 연산을 수행한 후 , 변수의 값을 1감소 시킴 |
++변수 | 변수의 값을 1증가 시킨 후, 다음 연산을 진행 |
--변수 | 변수의 값을 1감소 시킨 후, 다음 연산을 진행 |
[예시]
<script>
'use strict';
let num1 = 10;
console.log(`현재 num1의 값 : ${num1}`); //10
console.log(`++num1의 값 : ${++num1}`); //11
console.log(`현재 num1의 값 : ${num1}`); //11
console.log(`num1++의 값 : ${num1++}`); //11
console.log(`현재 num1의 값 : ${num1}`); //12
let num2 = 10;
++num2;
console.log(`현재 num2의 값 : ${num2}`); //11
num2++;
console.log(`현재 num2의 값 : ${num2}`); //12
let num3 = ++num2;
console.log(`현재 num2의 값 : ${num2}`); //13
console.log(`현재 num3의 값 : ${num3}`); //13
let num4 = num2++;
console.log(`현재 num2의 값 : ${num2}`); //14
console.log(`현재 num4의 값 : ${num4}`); //13
</script>
5. 논리 연산자
- 논리 연산자는 주어진 노리식을 판단하여 참과 거짓을 반환
- 피연산자는 Boolean 타입이여야함
논리연산자 | 설명 |
&& | 논리식이 모두 참이면 참을 반환함. (논리 AND 연산) |
|| | 논리식 중에서 하나라도 참이면 참을 반환함. (논리 OR 연산) |
! | 논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함. (논리 NOT 연산) |
아래는 논리 연산자의 모든 동작의 결과를 보여주는 진리표(truth table)이다.
A | B | A&&B | A||B | !A |
true | true | true | true | false |
true | false | false | true | false |
false | true | false | true | true |
false | false | false | false | true |
5. 비트 연산자
- 비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행한다.
비트연산자 | 설명 |
& | 대응되는 비트가 모두 1이면 1을 반환함. (비트 AND 연산) |
| | 대응되는 비트 중에서 하나라도 1이면 1을 반환함. (비트 OR 연산) |
^ | 대응되는 비트가 서로 다르면 1을 반환함. (비트 XOR 연산) |
~ | 비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산) |
<< | 지정한 수만큼 비트를 전부 왼쪽으로 이동시킴.(left shift연산) |
>> | 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴. (right shift 연산) |
>>> | 지정한 수만큼 비트를 전부 오른쪽으로 이동시키며, 새로운 비트는 전부 0이 됨. |
6. 삼항 연산자
- 조건식에 따른 참, 거짓에 따라 반환값이 달라지는 연산자
[문법]
조건식 ? 결과1(참일때) : 결과2(거짓일때)
[예시]
<script>
'use strict';
const num1 = Number(prompt('첫번째 숫자를 입력하세요.'));
const num2 = Number(prompt('두번째 숫자를 입력하세요.'));
const result = num1 > num2 ? num1 : num2;
console.log(`입력한 두 수에서 큰 수는 ${result} 입니다.`);
</script>
논리연산자, 비트연산자 부분 출처 : tcpschool.com
열심히 공부하고 있지만, 오류 사항이 존재 할 수 있습니다.
수정 사항이 존재 할 경우 알려주시면 감사하겠습니다 <(__)>
반응형
'프로그래밍 > 자바스크립트' 카테고리의 다른 글
08 자바스크립트의 배열과 for in, for of, forEach문 (0) | 2021.06.15 |
---|---|
07 주사위게임, 가위바위보, 로또추첨 만들기 (0) | 2021.06.13 |
05 대화상자 (0) | 2021.06.09 |
04 자바스크립트의 타입 변환 (0) | 2021.06.08 |
댓글