JS 연산자

정현승·2024년 10월 22일

연산자

연산자는 어떤 특정한 연산을 처리하기 위해서 사용하는 기호를 말합니다. 우리가 변수를 선언할 때 변수에 데이터를 할당하기 위해서 사용한 등호(=) 기호도 연산자입니다.

자바스크립트에서는 연산자를 크게 산술, 증감, 대입, 비교, 논리, 삼항, 비트로 구분하고 있는데, 비트 연산자는 웹 프로그래밍 관점에서 별로 사용할 일이 없으므로 배우지 않고 나머지 연산자들만 순차적으로 배워보도록 하겠습니다.

피연산자

피연산자란 연산자에 의해서 연산에 참여하는 데이터(값) 또는 항을 의미합니다.

산술 연산자 (이항 산술 연산자)

산술 연산자는 사칙연산을 다룰 때 사용하는 가장 기본적이면서도 많이 사용되는 연산자입니다. 자바스크립트에서는 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산자로 구성됩니다.

덧셈(+)

연산 기호로 + 를 사용합니다.

연산자의 좌변과 우변의 피연산자를 덧셈합니다.

10 + 20; // 30

뺄셈(-)

연산 기호로 - 를 사용합니다.

연산자의 좌변과 우변의 피연산자를 뺄셈합니다.

20 - 10; // 10

곱셈(*)

연산 기호로 * 를 사용합니다.

연산자의 좌변과 우변의 피연산자를 곱셈합니다.

10 * 10; // 100

나눗셈(/)

연산 기호로 / 를 사용합니다.

연산자의 좌변과 우변의 피연산자를 나눕니다.

10 / 5; // 2

나머지(%)

연산 기호로 %를 사용합니다.

연산자의 좌변과 우변의 피연산자를 나누어 떨어지는 나머지를 구합니다.

10 % 3; // 1

거듭제곱(**)

연산 기호로 ** 를 사용합니다.

왼쪽 피연산자를 밑, 오른쪽 피연산자를 지수로 한 값을 구합니다.
거듭제곱 연산자는 우측 결합성을 가집니다. 따라서 a b c는 a (b c)와 같습니다.

10 ** 3; // 1000

증감 연산자(단항 산술 연산자)

증감 연산자는 증가 연산자와 감소 연산자를 한 번에 일컫는 용어입니다.

증가 연산자(++)

증가 연산자는 숫자형 데이터를 1 증가합니다.

let a = 10; 
++a;  //11

감소 연산자(--)

감소 연산자는 숫자형 데이터를 1 감소합니다.

let a = 10;
--a; // 9

주의

증가 연산자는 데이터에 직접적으로 사용할 수 없고 데이터가 할당 된 변수만 피연산자로 사용할 수 있습니다.

전치 연산과 후치 연산

증감 연산자는 특이하게도 연산자를 변수의 앞에 썼느냐(전치) 뒤에 썼느냐(후치)에 따라서 전치 연산과 후치 연산이라는 작동 방식으로 구분됩니다.

전치 연산

let num1 = 10;
num2 = ++num1; 
console.log(num2); // ??

후치 연산

let num1 = 10;
num2 = num1++; 
console.log(num2); // ??

대입 연산자

대입 연산자는 변수나 상수에 데이터를 대입하기 위해서 사용하는 연산자입니다.

  1. 할당 연산자(=)

    • 왼쪽 피연산자에 오른쪽 피연산자의 데이터를 대입합니다.
    const age = 30;
  2. 복합 대입 연산자

    1. +=
    2. -=
    3. *=
    4. /=
    5. %=
    let sum = 10; 
    sum = sum + 20; // sum += 20; 

비교 연산자

비교 연산자는 왼쪽의 피연산자와 오른쪽의 피연산자를 비교하는 연산자입니다.

비교 연산자는 동등(==), 일치(===), 부등(!=), 불일치(!==), ~보다큰(>), ~보다 크거나 같은(≥), ~보다 작음(<), ~보가 작거나 같음(≤)이 있습니다.

동등 == 피연산자들의 데이터가 같으면 참을 반환합니다. (자료형 검사 x)
일치 === 피연산자들의 데이터가 같으면 참을 반환합니다 (자료형 검사 o)
부등 != 피연산자들의 데이터가 다르면 참을 반환합니다. (자료형 검사 x)
불일치 !== 피연산자들의 데이터가 다르면 참을 반환합니다.(자료형 검사 o)
~보다 큰 > 좌변의 피연산자의 데이터가 우변의 피연산자보다 크면 참을 반환합니다.
~보다 크거나 같은 >= 좌변의 피연산자의 데이터가 우변의 피연산자보다 크거나 같으면 참을 반환합니다.
~보다 작은 < 좌변의 피연산자의 데이터가 우변의 피연산자보다 작으면 참을 반환합니다.
~보다 작거나 같은 <= 좌변의 피연산자의 데이터가 우변의 피연산자보다 작거나 같으면 참을 반환합니다.

동등과 부등은 암시적 형변환을 해서 비교하기 때문에 정확한 비교라고 할 수 없습니다.

const a = 10;
const strA = "10";
const b = 20;

a == strA; // true 
a === strA; // false 
a == b; // false
a != b; // true
a != strA; // false 
a !== strA; // true

삼항 연산자

세 개의 피연산자를 이용해서 비교하는 연산자입니다.

삼항 연산자는 피연산자1이 참이면 피연산자2를 실행하고 거짓이면 피연산자 3을 실행합니다.
중첩 가능 하지만 가독성이 떨어져 여러번 사용해야하는 상황이 온다면 다른 조건문을 사용합니다.

피연산자1 ? 피연산자2 : 피연산자3 
let myMoney = 3000;
let price = 5000;
const result = myMoney > price ? '돈이 부족합니다.' : '물건을 구매하겠습니까?';

논리 연산자

논리 연산자는 피연산자들의 논리적인 판단을 거쳐 논리형(boolean)값을 반환하는 연산자입니다.

세부적으로 and(&&), or(||), not(!) 연산자가 있습니다. 왼쪽부터 오른쪽으로 판단합니다.
&&의 경우 앞이 false이면 뒤에 뭐가 있어도 false이기 때문에 바로 false로 판단합니다.
||의 경우 앞이 true 이면 바로 true로 판단합니다.

and && expr1 && expr2 좌변(expr1)과 우변(expr2)의 피연산자가 참이면 참입니다.
or || expr1 || expr2 좌변(expr1)과 우변(expr2)의 피연산자중 하나만 참이면 됩니다.
not ! !expr 단일 피연산자를 반대의 논리형 데이터로 반환합니다.

추가

데이터를 부정연산 두번 시행하면 결과가 명시적인 논리형 값 true , false로 나옴

const num = 9;
console.log(!!num); // true

0개의 댓글