Chapter 7 연산자

Operators

연산자(피연산자, 피연산자?)
  • 산술연산자:

    • binary: 연산자(피연산자, 피연산자)
    • unary : 연산자(피연산자) => 피연산자에 대한 부수효과 존재
      • except + : 새로운 숫자를 생성한다
  • 문자열 연결 연산자: +

    • implicit conversion (type coercion) 수행 (개발자의 의도와 관계없이 진행됨)
    • 피연산자 중 하나가 string ? string : 산술연산자
  • 할당 연산자: 부수효과 당연히 있음
  • 비교 연산자:

    • == : 암묵적 type coersion 후 비교, 그래서 예상치 못한 result 나올 수도 있음
    • NaN !== NaN : 자신과 일치하지 않는 유일한 값
      • (💡) Number.isNaN(), Object.is(NaN, NaN) // true 사용
    • 0 === -0 : true
      • (💡) Object.is(0, -0) // false 사용
  • 삼항 연산자: 값에 할당가능한 if else 문 (표현식인 문!)

  • typeof 연산자: 피연산자의 데이터 타입을 문자열로 반환

    • typeof null : object <– bug, JS에서 아직까지도 수정 못하고 있음 (side effect때문에)
    • typeof nonDefinedValue : undefined <– ReferenceError 대신, undefined 반환
  • wrap up:
    • 부수효과 있는 연산자: (=, +=, ++, –, …, delete)