1. 산술연산자(Arithmetic Operators)
| Operator | Description | 
|---|---|
| + | 덧셈 | 
| - | 뺄셈 | 
| * | 곱셈 | 
| / | 나눗셈 | 
| % | 나머지 | 
| ++ | 증가 | 
| – | 감소 | 
+ 연산자
- 연산 대상이 모두 숫자인 경우 : 덧셈 연산
- 문자나 문자열이 포함된 경우 : 문자열 연결 연산
 [참고] 연산 대상을 같은 타입으로 맞춰서 덧셈 연산자를 수행하도록 하는 것이 좋다.
++, – (증감 연산자)
| 1 | z = x++; // 5 선대입후증가 | 
2. 대입연산자(Assignment Operators)
| Operator | Example | Same As | 
|---|---|---|
| = | x = y | x = y | 
| += | x += y | x = x + y | 
| -= | x -= y | x = x - y | 
| *= | x *= y | x = x * y | 
| /= | x /= y | x = x / y | 
| %= | x %= y | x = x % y | 
3. 비교연산자(Comparison Operators)
| Operator | Description | 
|---|---|
| == | 동등비교 (loose equality) 형변환 후, 비교한다. | 
| === | 일치비교 (strict equality) 타입까지 일치하여야 true를 반환한다. | 
| != | 부등비교 | 
| !== | 불일치비교 | 
| > | 관계비교 | 
| < | 관계비교 | 
| >= | 관계비교 | 
| <= | 관계비교 | 
| ? | 삼항연산자 | 
[참고] ==와 === 연산자 비교
var num = 5;
x == 5 // true
x == ‘5’ // true, 데이터형이 달라도 같게 변환하여 true를 반환한다.
x === 5 // true
x === ‘5’ // false, 데이터형이 다르면 false를 반환한다.
4. 논리 연산자(Logical Operator)
| Operator | Description | ||
|---|---|---|---|
| ` | ` | or | |
| && | and | ||
| ! | not | 
|| (논리 합) 연산자
| 1 | var o1 = true || true; // t || t returns true | 
&& (논리곱) 연산자
| 1 | var a1 = true && true; // t && t returns true | 
[참고] 논리 부정 연산자로 값의 유무를 판별할 수 있다
| 1 | var str=''; | 
5. 단축 평가(Short-Circuit Evaluations)
- Boolean값으로 평가하기 위해 참조하여야 할 곳까지 진행한 후, 평가를 중지하게된 계기가 된 값을 반환한다.
| 평가식 | 평가결과 | ||
|---|---|---|---|
| true ` | ` anyting | true | |
| false ` | ` anything | false | |
| true &&anything | anyting | ||
| false &&anything | false | 
| 1 | var foo = 'Cat' && 'Dog' // t && t returns 'Dog' | 
- ‘Cat’은 true이므로 ‘Dog’까지 평가해 보아야 한다.
- 평가를 중지하게된 계기가 된 값 ‘Dog’을 반환한다.
| 1 | var foo = 'Cat' || 'Dog' // t || t returns 'Cat' | 
- ‘Cat’은 true이므로 평가를 중지하고 ‘Cat’을 반환한다.
평가
흐름제어를 위해서는 조건식을 평가하여 논리적 참, 거짓을 구별한 후 평가 결과에 따라 의사결정을 하는 것이 일반적이다.
이 때 자바스크립트는 암묵적 강제 형 변환을 통해 조건식을 평가한다.
암묵적 강제 형 변환 (Type coercion)
Javascript는 context(문맥)을 고려하여 내부적으로 자료형을 암묵적으로 강제 변환하여 작업을 완료할 수 있다.
| 1 | console.log('1' > 0) // true | 
직접 형 변환
string -> number
| 1 | var val = '123'; //문자열 | 
number -> string
| 1 | var val = 123; //숫자 | 
Truthy & Falsy values
- Falsy values: Boolean Context에서 false로 평가되는 값들
- Truthy Values: Falsy values 이외의 값들이며(object포함) true로 평가된다.
Falsy Values
- false
- undefined
- null
- 0
- NaN (Not a Number)
- '' (빈문자열)