본문 바로가기
프로그래밍/자바스크립트

06 연산자

by 윤지(●'◡'●) 2021. 6. 10.
반응형


연산자

 

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

열심히 공부하고 있지만, 오류 사항이 존재 할 수 있습니다.

수정 사항이 존재 할 경우 알려주시면 감사하겠습니다 <(__)>

반응형

댓글