연산자는 하나 이상의 표현식을 대상으로 연산을 수행해 값을 만든다
연산의 결과가 ‘값’이라는 것이 중요
- 연산의 결과가 어떤 타입의 값인지 위주로 학습
연산 결과로 숫자값을 반환하고, 피연산자의 개수에 따라 이항, 단한 산술 연산자로 구분할 수 있음
연산 결과:
Number
사칙연산 (+,-,/,*) + 나머지(%)
- 덧셈, 뺄셈, 나눗셈, 곱셈, 나머지 구하기 등의 연산은 항상 두 가지 수 이상이 있어야 연산 가능
연산 결과:
Number ++,--,+,-
++,--의 경우 연산자의 위치에 따라 의미가 다름
var x = 5; // 5
var result; // undefined
// 선할당 후증가
result = x++; // result = x; x = x + 1;
// 선증가 후할당
result = ++x; // x = x + 1; result = x;
+ 연산자? 피연산자를 숫자 타입으로 변경하여 반환한다는 효과가 있다는 점을 활용하면, var x = 'string';
var y = '1'
console.log(+x) // NaN
console.log(+y) // 1let myNumber = 255;
+myNumber.toFixed(3); // toFixed 메서드의 결과는 숫자가 아니기 때문에 + 연산자 사용해서 숫자형으로 변경
// 동일한 표현으로, number(myNumber.toFixed(3)); 연산 결과:
String
+피연산자 중 문자열이 하나 이상 있을 경우 산술 연산이 아니라, 문자열 연결 연산자로 동작
연산 결과
- 문자열 연결 연산자 이외의 연산:
Number- 문자열 연결 연산자 += 연산:
String// 문자열 연결 연산자 str += 'Lee'; // str = str + 'Lee'; console.log(str); // 'My name is Lee'
- 종류:
=,+=,-=,*=,/=,%/
할당문은 표현식인 문이다.
var a, b, c;
// 연쇄 할당. 오른쪽에서 왼쪽으로 진행.
// ① c = 0 : 0으로 평가된다
// ② b = 0 : 0으로 평가된다
// ③ a = 0 : 0으로 평가된다
a = b = c = 0;
console.log(a, b, c); // 0 0 0
연산 결과:
boolean
동등 비교 연산자:
==(암묵적 형 변환이 일어난다, 결과 예측이 어렵다.)
일치 비교 연산자:===
연산자 종류:
>,<,>=,<=
연산 결과: 피연산자 중 하나
var result = (조건식) ? (조건식이 true일 때 반환할 값) : (조건식이 false일 때 반환할 값)
조건식은 불리언 타입으로 평가되어야 하며, 만약 불리언 타입이 아니라면 암묵적 형 변환을 통해 불리언 값이 된다.
연산결과: 피연산자 중 하나
// 논리합(||) 연산자 true || true; // -> true true || false; // -> true false || true; // -> true false || false; // -> false // 논리곱(&&) 연산자 true && true; // -> true true && false; // -> false false && true; // -> false false && false; // -> false // 논리 부정(!) 연산자 !true; // -> false !false; // -> true
!연산결과:
Boolean
!의 연산 결과는 항상 불리언 값이라는 점을 활용,const didLogin = profile.id ? true : false;const didLogin = !!profile.id // 부정의 부정 이꼬르 긍정