본문 바로가기
Front-End/JavaScript

[JavaScript] 자바스크립트 연산자 모든 것

by 민바이민 2020. 12. 18.

JavaScript

연산자(Operator)

 

1. 산술 연산자

산술 연산자는 사칙연산 및 기본적인 연산을 하는 연산자입니다.

  • + : 덧셈
  • - : 뺄셈
  • * : 곱셈
  • / : 나눗셈
  • % : 나눗셈을 하고 난 나머지 값 ( 예 : 10 % 3 = 1 )
  • ** : 거듭제곱

 

2.비교 연산자

비교 연산자는 피연산자 사이의 상대적인 크기를 판단하여 참 또는 거짓을 반환합니다.

  • > : 왼쪽 값이 오른쪽 값보다 크면 참을 반환한다.
  • < : 오른쪽 값이 왼쪽 값보다 크면 참을 반환한다.
  • >= : 왼쪽 값이 오른쪽 값보다 크거나 같으면 참을 반환한다.
  • <= : 오른쪽 값이 왼쪽 값보다 크거나 같으면 참을 반환한다.
  • == : 두 식의 값이 같으면 참을 반환한다. ("10" == 10 는 참 👈🏻 묵시적 형변환이 일어남)
  • === : 두 식의 값이 같고, 데이터 타입까지 같으면 참을 반환한다. ( "10" === 10 는 거짓 👈🏻데이터 타입까지 비교했기 때문에)
  • != : 두 식의 값이 다르면 참을 반환한다. (10 != 5 는 참)
  • !== : 두 식의 값이 다르고, 타입까지 다르면 참을 반환한다.( 10 !== "1" 참)
만약 숫자끼리가 아니라 문자형끼리 비교를 하면 아스키코드를 사용하여 각 자리에 해당하는 문자의 크기를 비교하여 참, 거짓을 반환한다.
const num1 = 3;
const num2 = 5;
const str1 = "3";
const str2 = "abcde";
const str3 = "bcd";

let result = num1 > num2;
console.log(`num1 > num2 : ${result}`);

result = str2 <= str3;
console.log(`str2 <= str3 : ${result}`);

result = num1 == str1;
console.log(`num1 == str1 : ${result}`);

result = num1 === str1;
console.log(`num1 === str1 : ${result}`);

콘솔 출력값

 

3. 대입 연산자

변수의 값을 대입할 때 사용하는 연산자입니다.

  • = : 오른쪽의 값을 왼쪽 변수(상수)에 대입합니다.
  • += : 왼쪽 변수(상수)에 오른쪽 값을 더한 후, 그 결과를 다시 왼쪽 변수(상수)에 대입합니다.
let a = 10;
a += 5;		// a = a + 5;
// a == 15

 

 

  • -= : 왼쪽 변수(상수)에 오른쪽 값을 뺀 후, 그 결과를 다시 왼쪽 변수(상수)에 대입합니다.
  • *= : 왼쪽 변수(상수)에 오른쪽 값을 곱한 후, 그 결과를 다시 왼쪽 변수(상수)에 대입합니다.
  • /= : 왼쪽 변수(상수)에 오른쪽 값을 나눈 후, 그 결과를 다시 왼쪽 변수(상수)에 대입합니다.
  • %= : 왼쪽 변수(상수)에 오른쪽 값을 나눈 나머지 값을 구한 후, 그 결과를 다시 왼쪽 변수(상수)에 대입합니다.
  • **= : 왼쪽 변수(상수)에 오른쪽 값을 거듭 제곱한 후, 그 결과를 다시 왼쪽 변수(상수)에 대입합니다.

 

4. 증감 연산자

증감 연산자는 값을 1씩 증가시키거나 혹은 감소시킬 때 사용하는 연산자입니다. 연산자의 위치가 어디에 있는지에 따라 결과가 달라집니다.

  • ++변수 : 변수의 값을 1 증가시킨 후, 다음 연산을 진행한다.
  • --변수 : 변수의 값을 1 감소시킨 후, 다음 연산을 진행한다.
  • 변수++ : 먼저 다른 연산을 수행한 후, 변수의 값을 1 증가시킨다
  • 변수-- : 먼저 다른 연산을 수행한 후, 변수의 값을 1 감소시킨다
let a = 5;
++a;	// 6
a++; 	// 7

let b = ++a;	// b=8, a=8;
let c = a++;	// c=8, a=9; 연산자 우선순위

연산자 우선순위표

 

5. 논리 연산자

논리 연산자는 주어진 논리식을 판단하여 참과 거짓을 반환한다.

  • and 연산자 : 두 논리식 모두 참이면 참을 반환하는 연산자이다. (&&)
const a = 10;
const b = 5;

const result = (a == b) && (a >= b)	//false
	    	  A	       B
로그인에서 많이 사용된다.(아이디와 패스워드가 모두 맞아야 하기 때문에)

A           &&        B                     결과
true                  true                  true
true                  false                 false
false                 true                  false
false                 false                 false            

 

  • or 연산자 : 두 논리식 중 하나라도 참이면 참을 반환하는 연산자이다 ( || )

A            ||          B                    결과
true                  true                  true
true                  false                 true
false                 true                  true
false                 false                 false

 

not 연산자 : 논리식의 결과가 참이면 거짓으로, 거짓이면 참으로 변환하는 연산자이다. ( ! )

A            !결과
true         false
flase        true

let b = true;
console.log(!b);    // false

 

6. 비트 연산자

비트 연산자는 논리 연산자와 비슷하지만 비트 단위로 논리 연산을 수행합니다.

  • bit : 컴퓨터의 용량의 최소단위입니다. 0 또는 1을 저장하는 단위입니다.
  • byte : 1byte는 8비트입니다.
  • KB(킬로바이트) : 1KB는 1024byte입니다.
  • MB(메가바이트) : 1MB는 1024KB입니다.
  • GB(기가바이트) : 1GB는 1024MB입니다.
  • TB(테라바이트) : 1TB는 1024GB입니다.
  • PB(페타바이트) : 1PB는 1024TB입니다.

 

  • & : 대응되는 비트가 모두 참이면 참을 반환하는 연산자입니다.
  • | : 대응되는 비트 중에서 하나라도 참이면 참을 반환하는 연산자입니다.
  • ^ : 대응되는 비트가 서로 다르면 참을 반환하는 연산자입니다.
  • <<(레프트쉬프트) : 지정한 수만큼 비트를 왼쪽으로 이동시킵니다.
  • >>(라이트쉬프트) : 지정한 수만큼 비트를 오른쪽으로 이동시킵니다. 

 

  • 25 & 18 = 16

32    16    8    4    2    1
        1      1    0    0    1   (25)
        1      0    0    1    0   (18)
& -----------------------------
        1      0    0    0    0  (16)          //true == 1, false ==0

  • 25 | 18 = 27

32    16    8    4    2    1
        1      1    0    0    1   (25)
        1      0    0    1    0   (18)
| -----------------------------
        1      1     0    1    1   (27)

  • 25 <<  2
    1100100 = 100
  • 25 >> 2
    11001 = 6 

 7. 삼항 연산자

조건식에 따른 참, 거짓에 따라 반환값이 달라지는 연산자입니다.

변수 = 조건식 ? 반환값1 : 반환값2;
       -----
       결과는 true, false
       
const num = 10;
const a = num == 10 ? "num은 10이야" : "num은 10이 아니야";
                      ------------     --------------
                         true자리           false자리

ex)

const num1 = Number(prompt('첫번째 숫자를 입력하세요.'));   // 5
const num2 = Number(prompt('두번째 숫자를 입력하세요.'));   // 7
const result = num1 > num2 ? num1 : num2;
console.log(`입력한 두 수 중 큰 수는 ${result}입니다.`);

console 창

 

 

댓글