연산자는 표현식을 대상으로 하나의 값을 만든다.
이 때 연산의 대상을 피연산자
라고 한다.
연산자는 값으로 평가된 피연산자를 연산해 새로운 값을 만든다.
수학적 계산을 수행해 새로운 숫자 값을 만든다.
두개의 피연산자를 산술해 숫자를 만든다.
+,-,*,/,%
이 있다.
1개의 피연산자를 산술 연산해 숫자 값을 만든다.
변수가 변하기 때문에 부수효과가 있다.
++,--
: 증감var x = 5;
// 선 할당 후 증가
result = x++; // result => 5 , x => 6
// 선 증가 후 할당
result = ++x; //result => 6 , x => 6
-
: 음양을 반전한 값을 반환한다. (음수 => 양수)-('10')
=> -10 : 문자열을 숫자로 타입 변환한다.-true
=> -1 : Boolean 을 숫자로 타입 변환+
도 마찬가지 )+
연산자는 문자열을 연결해준다.
'1' + '2'
=> '12'
'1' + 2
=> '12'
1 + true
=> 2
null
=> 0undefined
=> NaN우항에 있는 피연산자의 평과 결과를 좌항의 변수에 할당한다.
x += 5
== x = x+5
x == y
, x != y
: 동등 비교
x===y
, x!==y
: 일치 비교
동등 비교는 연산자의 암묵적 타입 변환을 통해 타입을 일치시켜 값을 비교하고,
일치 비교는 타입까지 확인한다.
1 == true
=> true
1 === true
=> false
이렇듯 예측이 어렵게 나타나기 대문에, 동등 비교 연산자는 사용하지 않는 것이 좋다.
⭐️ 주의
NaN === NaN
=> falseObject.is(NaN,NaN)
=> true
> , < , <= , >=
a ? b : c
첫번째 피연산자가 (a)
true 이면 두번째 연산자를 반환 (b)
false 이면 세번째 연산자를 반환한다. (c)
좌항과 우항의 논리 연산을 한다.
&&
: AND
||
: OR =>
!
: NOT => 불리언 값 반환
var x,y,z
x=1,y=2,z=3
let은 가능하지만 const는 불가하다.
소괄호를 사용하는 연산 먼저 수행한다.
피연산자의 데이터 타입을 문자로 반환한다.
typeof null
=> object
**
를 사용해서 거듭 제곱을 구할 수 있다.
2 ** 2
=> 4
이전에는 Math.pow를 사용했다.
Math.pow(2,2)