연산자

김민수·2023년 10월 4일
0
post-thumbnail

피연산자 : 값 (1, 2, 3,...)
연산자 피연산자를 연산하여 새로운 값을 만든다. (+, -, * ...)


1. 산술 연산자

산술 연산자 : 피연산자(값)를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다.

불가능한 경우 : NaN을 반환한다.

이항 산술 연산자

이항 산술 연산자 : 2개의 피연산자를 산술 연산하여 새로운 숫자 값을 만든다.

// 이항 산술 연산자 : +, -, *, / %
5 + 2 // -> 7

단항 산술 연산자

단항 산술 연산자 : 1개의 피연산자를 산술 연산하여 숫자 값을 변경한다.

// 단항 산술 연산자 : ++, --, +, -

var x = 5, result;

// 선할당 후증가
result = x++;  
console.log(result, x) // 5, 6

//선증가 후할당
result = ++x;  
console.log(result, x) // 7, 7

console.log(+(-10), +10) // 10, 10  (그러나 아무 일도 일어나지 않았다...)
console.log(typeof(+'10')) // number !!! -> 백준에서 사람들이 종종 쓰는게 보였다.

// 양수 -> 음수, 음수 -> 양수
console.log(-(-10)); // 10

문자열 연결 연산자

문자열 연결 연산자 : 피연산중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다.

'1' + 2; // '12'
'1' + '2' // '12'

암묵적 타입 변환 또는 타입 강제 변환 이라고 한다..


2. 할당 연산자

할당 연산자 : 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당한다.

// 할당 연산자 =, +=, -=, *=, /=, %=
var x;

x = 10;
x += 10;
// 등등.....

// 연쇄할당 해버리기!
// 할당 연산자의 정의를 보면 알듯이 c = 0 , b = c(0), a = c(b(0))
var a,b,c;
a = b = c = 0;
console.log(a,b,c) // 0, 0, 0

3. 비교 연산자

비교 연산자 : 좌항과 우항의 피연산자를 비교한 결과값을 불리언 값으로 반환한다.

동등/일치 비교 연산자

동등 비교 : 좌,우항 타입으로 일치 시키고 같은 값인지 확인한다
일치 비교 : 좌,우항 타입, 값 같은 경우에만 return true!

// 동등 비교 : == , !=  
5 == 5 // true;
5 == '5' // true;

// 일치 비교 : ===, !== 
5 === 5 // true;
5 === '5' // false;

// 이상한 케이스들 모음집... 
NaN === NaN; // 자신과 일치하지 않는 유일한 값.. Number.isNaN()을 사용하자..
0 === -0; // true
0 == -0; // true

대소 관계 비교 연산자

대소 관계 비교 연산자 : 피연산자의 크기를 비교하여 불리언 값을 반환한다.

// 대소 관계 비교 연산자 : <, >, >=, <=

5 > 0 // true

4. 삼항 조건 연산자

삼항조건 연산자 : 조건식의 평가 결과에 따라 반환할 을 결정한다.

var x = 10;

var result = if(x % 2) {result = '홀수'; } else {result = '짝수';};
// error

var result = x % 2 ? '홀수' : '짝수';
// 짝수

5. 논리 연산자

논리 연산자 : 우항과 좌항의 피연산자를 논리 연산한다.

// 논리합 (||) , 논리곱 (&&), 논리 부정 (!)
true || true // true

6. 쉼표 연산자

쉼표 연산자 : 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 평가가 끝나면 마지막 피연산자의 평가 결과를 반환

x = (2, 3);
console.log(x); // 3

// 많이 사용하는 곳은 for문..
for (let i = 0, j = 9; i <= 9; i++, j--) {
  console.log(`a[${i}][${j}] = ${a[i][j]}`);
}

7. 그룹 연산자

그룹 연산자 : 소괄호로 피연산자를 감싼다.. 연산자 우선순위가 가장 높음

10 * (2 + 3); // 50

8. typeof 연산자

typeof 연산자 : 피연산자의 데이터 타입을 문자열로 반환한다.
return : undefined, object, boolean, number, bigint, string, symbol, function, object
참고

typeof 1 // number

9. 지수 연산자

지수 연산자 : 좌항의 피연산자를 밑, 우항의 피연산자를 지수로 거듭 제곱하여 숫자 반환

2 ** 2; // 4
Math.pow(2,2) // 4 예전 사용법

0개의 댓글