Study/JavaScript

[JavaScript_study] 연산자에 대해서

갈푸라떼 2022. 4. 10. 19:47

* 산술 연산자 (Arithmetic operators)

  > + 더하기

  > - 빼기

  > * 곱하기

  > / 나누기

  > % 나머지 값

  > ** 지수 (거듭제곱)

 

console.log(5 + 2);
console.log(5 - 2);
console.log(5 * 2);
console.log(5 / 2);
console.log(5 % 2);
console.log(5 ** 2); // es7
console.log(Math.pow(5, 2));

// + 연산자 주의점!
let text = '두개의' + '문자를';
console.log(text);
text = '1' + 1; // 숫자와 문자열을 더하면 문자열로 변환됨
console.log(text);

 

* 단항 연산자 (Unary operators)

  > + (양)

  > - (음)

  > ! (부정)

 

let a = 5;
a = -a; // -1 * 5
console.log(a); // -5
a = -a;
console.log(a); // 5 (마이너스 * 마이너스 = 플러스)

a = +a;
console.log(a);

a = -a; // -5
a = +a; // +(-5)
console.log(a);

let boolean = true;
console.log(boolean);
console.log(!boolean);
console.log(!!boolean);

// + 숫자가 아닌 타입들을 숫자로 변환하면 어떤값이 나오는지 확인할 수 있음
console.clear();
console.log(+false); // 0
console.log(+null); // 0
console.log(+''); // 0
console.log(+true); // 1
console.log(+'text'); // NaN
console.log(+undefined); // NaN

console.log(!!1); 
// ! 부정연산자
// !! 값을 boolean 타입으로 변환함

 

* 할당연산자 (Assignment operators)

let a = 1;
a = a + 2;
console.log(a);

a += 2; // a = a + 2; 축약버전
console.log(a);

a -= 2;
console.log(a);

a *= 2;
console.log(a);

a /= 2;
a %= 2;
a **= 2;

 

* 증가 & 감소 연산자 Increment & Decrement Operators

let a = 0;
console.log(a);
a++; // a = a + 1;
console.log(a);
a--; // a = a - 1;
console.log(a);

console.clear();
// 주의!
// a++ 필요한 연산을 하고, 그 뒤 값을 증가시킴
// ex) console창에 값을 출력시켜주고 그 뒤에 값을 증가시킴
// ++a 값을 먼저 증가하고, 필요한 연산을 함
// ex) 값을 증가시켜주고 console에 값을 출력함
a = 0;
console.log(a++);
console.log(a);
let b = a++;
console.log(b);
console.log(a);

 

* 대소 관계 비교 연산자 (Relational operators)

// > 크다
// < 작다
// >= 크거나 같다
// <= 작거나 같다
console.log(2 > 3);
console.log(2 < 3);
console.log(3 < 2);
console.log(3 > 2);
console.log(3 <= 2);
console.log(3 <= 3);
console.log(3 >= 3);
console.log(3 >= 2);

 

* 동등 비교 관계 연산자 (Equality operators)

// == 값이 같음
// != 값이 다름
// === 값과 타입이 둘다 같음
// !== 값과 타입이 다름

console.log(2 == 2); // true
console.log(2 != 2); // false
console.log(2 != 3); // true
console.log(2 == 3); // false
console.log(2 == '2'); // true
console.log(2 === '2'); // false✨
console.log(true == 1); // true
console.log(true === 1); // false
console.log(false == 0); // true
console.log(false === 0); // false

const obj1 = {
  name: 'js',
};
const obj2 = {
  name: 'js',
};

console.log(obj1 == obj2); // false
console.log(obj1 === obj2); // false
console.log(obj1.name == obj2.name); // true
console.log(obj1.name === obj2.name); // true

let obj3 = obj2;
console.log(obj3 == obj2); // true
console.log(obj3 === obj2); // true

 

* 논리 연산자 (Logical operator)

// && 그리고
// || 또는
// ! 부정(단항연산자에서 온것)
// !! 불리언값으로 변환 (단항연산자 응용버전)
let num = 8;
if (num >= 0 || num > 20) {
  console.log('👍');
}
if (num != 9) {
  console.log('🙏');
}

console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false

console.log(true || true); // true
console.log(true || false); // true
console.log(false || true); // true
console.log(false || false); // false

console.log(!'text');
console.log(!!'text');