function sum(x,y){
return x + y;
}
sum(3,4)
단항 산술 연산자는 1개의 피연산자를 연산하여 숫자값을 만든다 | |||
전위 증가/감소 연산자 - 먼저 피연산자의 값을 증가/감소시킨 후 다른 연산 실행한다. | |||
++i | 먼저 값i가 증가된다. | --i | 먼저 값 i가 감소된다. |
후위 증가/감소 연산자 - 먼저 다른 연산을 수행한 뒤, 피연산자의 값을 증가/감소시킨다. | |||
i++ | 다른 연산 수행 후 i 값을 증가시킨다. | i-- | 다른 연산 수행 후 i 값을 감소시킨다. |
let x = 5, result
result = x++;
console.log(result,x); // output ?
result = ++x;
console.log(result,x); // output ?
result = x--;
console.log(result,x); // output ?
result = --x;
console.log(result,x); // output ?
let x = '1';
console.log(+x) // output 1
let x = true
console.log(+x) // output 1
let x = false
console.log(+x) // output 0
let x = '-10'
console.log(-(x)); // output 10
1 + true = 2
let a,b,c;
a = b = c = 0;
console.log(a,b,c) // output : 0 0 0
서두에서 서술한 피연산자와 연산자의 조합으로 이뤄진 연산자 표현식도 값으로 평가될 수 있는 표현식을 기억하자.
동등 비교 연산자 ( == )는 예측하기 어려운 결과를 만들어내므로 사용을 지양하고 대신 일치 비교 연산자 ( === )를 사용한다.
일치 비교 연산자는 타입과 값을 모두 비교하는데, 주의할 점은 NaN이다.
NaN === NaN // false
Number.isNaN(1 + undefined) // true
Number.isNaN(10) // false
0 === -0; // true
0 == -0 // true
-0 === +0; // true
Object.is(-0,+0) // false
삼항 조건 연산자의 첫 번째 피연산자는 조건식이므로 삼항 조건 연산자 표현식은 조건문이다. 하지만 삼항 조건 연산자 표현식은 if ...else 문과 중요한 차이가 있는데, 삼항 조건 연산자 표현식은 값처럼 사용할 수 있지만, if ...else문은 표현식이 아니기 때문에 값처럼 사용할 수 없다.
let x = 10;
let result = if(x % 2) //{ condition statement }
// output : SyntaxError : Unexpected token if
let y = 10;
let result = y % 2 ? '홀수' : '짝수' ;
console.log(result) // output : 짝수
논리연산자는 우항과 좌항의 피연산자를 논리 연산한다.
부정 논리 연산자의 경우 우항의 피연산자를 논리 연산한다.
논리연산자 | 의미 | |
|| | 논리합(OR) | 평가된 값이 boolean값이 아닐 수도 있다. 2개의 피 연산자 중 어느 한쪽으로 평가된다. |
&& | 논리곱(AND) | 평가된 값이 boolean값이 아닐 수도 있다. 2개의 피 연산자 중 어느 한쪽으로 평가된다. |
! | 부정(NOT) | 논리부정연산자는 항상 boolean값을 반환한다. 피연산자가 불리언 값이 아니라면 암묵적 타입 변환을 실시한다. |
!(x || y) === (!x && !y)
!(x && y) === (!x || !y)
let x,y,z;
x = 1, y = 2, z = 3; // 3이 출력된다. 그렇다고 x,y의 값이 3인 것은 아니다.