본문 바로가기
PL (Programming Language)/JavaScript

[JS] 자바스크립트 연산자: 나머지(%), 증감(++, --), 논리(!, ||, &&), 일치(===), ??(Null 병합), 삼항 연산자

by jangThang 2023. 9. 13.
반응형

 자바스크립트에서 사용되는 연산자의 종류에 대해서 알아봅니다.

 

[ Contents ]

     

     

    1. 산술 연산자

     기본적인 산술연산 +, -, /, *은 다 있습니다.

     

    let a = 9;
    console.log(a%2); // 나머지: 1

     나머지 연산자 %도 통용되는 편이죠.

     

    let a = 9;
    console.log(a//2); // 몫 연산자는 없음

     다만 몫 연산자는 없네요.. 

     

    let num = 5;
    
    console.log(num++); //후위연산 -> 5
    console.log(num); // 현재 num 값 -> 6
    console.log(++num); //전위연산 -> 7

     파이썬에는 없는 증감 연산자가 자바스크립트에는 있습니다.

     전위연산은 먼저 증감 연산이 처리되며, 후위연산은 이후에 증감 연산이 처리된다는 차이가 있죠. C/C++를 처음 배울 때, 포인터 다음으로 헷갈려하시는 부분이기도 합니다.

     

     

     

    2. 논리 연산자

    console.log(!true); // false
    console.log(true && false); // false
    console.log(true || false); // true

     자바스크립트에서 not은 !, and는 &&, or은 ||입니다.

     

    console.log(true^false); // 1

     xor 연산자 ^도 있어요. 자주 쓰이진 않지만요.

     

    반응형

     

    3. 비교 연산자

    let num1 = 5;
    let num2 = "5";
    
    console.log(num1 === num2); // false
    console.log(num1 == num2); // true

     자바스크립트는 특이하게 일치 연산자가 있습니다.

     ===는 값과 자료형까지 같아야 true값이 출력됩니다.

     

    let num1 = 5;
    let num2 = "5";
    
    console.log(num1 !== num2); // true
    console.log(num1 != num2); // false

     반면 불일치는 !==로 사용하시면 됩니다.

     

     

     

    4. 특수 연산자

    1) 연결 연산자

    let a = "star가 ";
    let b = "되고나서";
    
    console.log(a + b); // star가 되고나서

     피연산자가 문자열일 경우에는 문자열 병합도 지원합니다.

     한 번 써보면... 엄청 편하다는 걸 느낄 수 있죠.

     

    let a = "star가";
    let b = "되고나서";
    let c = "Tistory"
    
    console.log(a, b, c); // star가 되고나서 Tistory

     뭐 물론 console.log()의 경우, 여러 인자를 넣어주면 알아서 병합해주긴 합니다.

     

     

     

    2) null 병합 연산자

    let num;
    console.log(num);
    
    num = num ?? 20; //20
    console.log(num)

     다소 특이한 연산자도 있습니다. null일 경우에 예외처리를 해주는 연산자입니다.

     

    a = b ?? c

      a에 b를 대입하되, 만약 b가 null(undefined)라면 c의 값을 대입하라는 뜻이죠.

     SQL에서 NVL 함수와 비슷하다고 생각하면 되겠습니다.

     

     

    let num;
    let a = num + 10;
    console.log(a);

     Null 값이 포함된 산술연산은 NaN오류가 뜨기 때문에, 이런 예외처리가 의외로 중요합니다.

     

     

    3) 삼항 연산자

    조건 ? A : B

     조건이 참이면 A를, 거짓이면 B를 수행하는 연산자입니다.

     

    if(조건){
    	A
    } else {
    	B
    }

     if - else문을 간략화한 연산자로, 꽤 자주 쓰입니다.

     코드 가독성 관점에서 삼항 연산자를 자제하라는 얘기도 있지만, 간단한 조건분기를 구분할 때에는 좋아요.

     

    let res = isSubmit ? "제출 완료" : "제출 필요";

     이런 식의 간단한 대입문에 쓸 수 있습니다.

     

    A ? B : (C ? D : (E ? F : G) )

     물론 삼항 연산자의 False 부분에 삼항 연산자를 덧붙여서... if - else if - else처럼 쓸 수도 있지만, 제발 코드 가독성을 위해 참아주시기 바랍니다..

     

     

    star가 되고나서 Tistory

    반응형

    댓글