피연산자(operand)
피연산자는 인수(argument) 라고 불리기도 합니다.
- 할당식은 표현식인 문이다.
산술 연산자
5 \* 4;
8 % 3;
문자열 연결 연산자
"My name is" + "Kim";
alert("1" + 2);
alert(2 + "1");
할당 연산자
할당 연산자는 변수 값이 변하는 부수 효과가 있다.
color = "red";
할당 연산자 체이닝
let a, b, c;
a = b = c = 2 + 2;
alert(a);
alert(b);
alert(c);
복합 할당 연산자
let n = 2;
n = n + 5;
n = n \* 2;
let n = 2;
n += 5;
n *= 2;
비교 연산자
3 > 5;
다른 타입을 가진 값의 비교(동등 비교 연산자 '==')
==는 암묵적 형 변환(coercion) 후 값을 비교함
===는 형(type)과 값(value) 모두 비교함 → 대부분의 경우 === 사용을 권장
"2" > 1;
"01" == 1;
0 == "";
"5" == 5;
"5" === 5;
null == undefined;
null === undefined;
일치 연산자(타입 비교 연산자 '===')
0 === false;
NaN === NaN;
0 === -0;
논리 연산자 - 단축 평가 (Short-Circuit Evaluation)
- 자주 쓰이는 패턴: 변수 || 기본값, 조건 && 실행
true && false;
true || alert("이건 실행 안 됨");
false && alert("이것도 실행 안 됨");
let name = userName || "Anonymous";
타입 연산자
typeof "Hi";
typeof 3;
증가, 감소 연산자
let counter = 2;
counter++;
console.log(counter);
let counter = 2;
counter--;
console.log(counter);
let counter = 1;
let pre = ++counter;
let post = counter++;
삼항 연산자
- '물음표(question mark) 연산자’라고도 불리는 '조건부(conditional) 연산자’를 사용하면 더 짧고 간결하게 변형할 수 있습니다.
- 조건부 연산자는 물음표(?)로 표시합니다.
- 피연산자가 세 개이기 때문에 조건부 연산자를 '삼항(ternary) 연산자’라고 부르는 사람도 있습니다.
- 자바스크립트에서 피연산자를 3개나 받는 연산자는 조건부 연산자가 유일합니다.
let result = condition ? value1 : value2;
let accessAllowed = age > 18 ? true : false;
let age = 20;
let message = age < 3
? "아기야 안녕?"
: age < 18
? "안녕!"
: age < 100
? "안녕하세요!"
: "나이가 많으시네요!";
논리 연산자 (OR)
result = a || b;
true || true;
true || false;
false || true;
false || false;
논리 연산자 (AND)
result = a && b;
true || true;
true || false;
false || true;
false || false;
- 첫 번째 피연산자가 truthy이면,
- AND는 두 번째 피연산자를 반환합니다.
1 && 0;
1 && 5;
- 첫 번째 피연산자가 falsy이면,
- AND는 첫 번째 피연산자를 반환하고, 두 번째 피연산자는 무시합니다.
null && 5;
0 && "아무거나 와도 상관없습니다.";
논리 부정(!) 연산자 (NOT)
result = !value;
!true;
!0;
- NOT을 두 개 연달아 사용(!!)하면 값을 불린형으로 변환할 수 있습니다.(강제 형변환)
!!"non-empty string";
!!null;