JavaScript & Node.js

#.3 Operator

Haksae 2022. 1. 9. 15:31

1. String Concatenations

  • (’A’ + ‘B’) → ‘AB’
  • (’1’ + 2) → 12
    • 숫자형이 문자형을 만나면 문자형으로 변한다.
  • String Literals
    • ${1 + 2} -> 3
    • 백틱을 이용

2. Numeric Operators

    • : add
    • : substract
  • / : divide
    • : multiply
  • % : remainder / 나머지 값만 리턴
  • ** : exponentiation / 제곱

3. Increment and decrement operators

  • ++ : increment operator
  • — : decrement operator

1) preIncrement (decrement도 동일)

let A = 3;
const B = ++A;

console.log(A);   // 4
console.log(B);   // 4 
  • A = A + 1;
  • B = A;

2) postIncrement (decrement도 동일) *헷갈림 주의

let A = 3;
const B = A++;

console.log(A);   // 4
console.log(B);   // 3
  • B = A;
  • A = A + 1;

4. Assignment Operators

let x = 3;
let y = 6;
x += y; // x = x + y
x -= y; // x = x - y
x *= y; // x = x * y
x /= y; // x = x / y

5. Comparison Operators

  • < : less than
  • <= : less than or equal
  • : greater than
  • = : greater than or equal

6. Logical Operators

  • || : or
  • && : and
  • ! : not / not 연산자는 값을 거꾸로 바꿔줌
  • or와 and 연산자를 만들 때, 함수(heavy한 operation)를 넣는다면 가장 나중에 넣는 것이 좋다. (파싱 낭비)
  • and는 null 체크할 때도 많이 씀
if (nullableObject != null) {
		nullableObject.something;
}

7. Equality Operators

  • == : loose equality, with type conversion
  • === : strict equality, no type conversion
  • object equality by reference (이것을 조심하는게 좋음)
const hak1 = {name: 'hak'}
const hak2 = {name: 'hak'}
const hak3 = hak1;
console.log(hak1 == hak2); // false
console.log(hak1 === hak2); // false
console.log(hak1 ===hak3); // true

  • reference 기준으로 생각하면된다.
  • 그래서 웬만하면 strict equality를 쓰는게 좋다.

 

  • e.g
console.log(0 == false); // true    false로 간주
console.log(0 === false); // false  0은 boolean 타입이 아님
console.log('' == false); // true
console.log('' === false); // false empty는 boolean 타입이 아님
console.log(null == undefined); // true
console.log(nyll === undefined); // false 둘은 다른 타입

 

출처 : 드림코딩엘리 https://www.youtube.com/channel/UC_4u-bXaba7yrRz_6x6kb_w