자바스크립트에서 사용되는 연산자의 종류에 대해서 알아봅니다.
[ 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처럼 쓸 수도 있지만, 제발 코드 가독성을 위해 참아주시기 바랍니다..
'PL (Programming Language) > JavaScript' 카테고리의 다른 글
[JS] 자바스크립트 배열 생성, 특징, 함수: push, unshift, pop, shift, length, splice (0) | 2023.09.14 |
---|---|
[JS] 자바스크립트 함수 정의 방법: 함수 선언식과 (익명)함수 표현식 (0) | 2023.09.13 |
[JS] 자바스크립트 변수와 상수 선언: let, var, const (feat. let과 var의 차이) (0) | 2023.09.13 |
[JS] 자바스크립트 개발환경 세팅: 브라우저 개발자도구, VS코드 (0) | 2023.09.12 |
[JS] 자바스크립트(JavaScript)란? 동적 웹프로그래밍과 모던 자바스크립트 (0) | 2023.09.11 |
댓글