[JS] 07. 연산자

heyhey·2023년 6월 15일
0
post-thumbnail

연산자는 표현식을 대상으로 하나의 값을 만든다.
이 때 연산의 대상을 피연산자라고 한다.

연산자는 값으로 평가된 피연산자를 연산해 새로운 값을 만든다.

7.1 산술 연산자

수학적 계산을 수행해 새로운 숫자 값을 만든다.

이항 산술 연산자

두개의 피연산자를 산술해 숫자를 만든다.
+,-,*,/,% 이 있다.

단항 산술 연산자

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 => 0
    • undefined => NaN

7.2 할당 연산자

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

x += 5 == x = x+5

7.3 비교 연산자

동등 일치 비교 연산자

x == y , x != y : 동등 비교
x===y, x!==y : 일치 비교

동등 비교는 연산자의 암묵적 타입 변환을 통해 타입을 일치시켜 값을 비교하고,
일치 비교는 타입까지 확인한다.

1 == true => true
1 === true => false

이렇듯 예측이 어렵게 나타나기 대문에, 동등 비교 연산자는 사용하지 않는 것이 좋다.

⭐️ 주의

  • NaN은 자신과 일치하지 않는 유일한 값이다.
    NaN === NaN => false

Object.is(NaN,NaN) => true

대소 관계 비교 연산자

> , < , <= , >=

7.4 삼항 조건 연산자

a ? b : c

첫번째 피연산자가 (a)
true 이면 두번째 연산자를 반환 (b)
false 이면 세번째 연산자를 반환한다. (c)

7.5 논리 연산자

좌항과 우항의 논리 연산을 한다.

&&: AND
|| : OR =>
! : NOT => 불리언 값 반환

7.6 쉼표 연산자

var x,y,z
x=1,y=2,z=3

let은 가능하지만 const는 불가하다.

7.7 그룹 연산자

소괄호를 사용하는 연산 먼저 수행한다.

7.8 typof 연산자

피연산자의 데이터 타입을 문자로 반환한다.

typeof null => object

7.9 지수 연산자

** 를 사용해서 거듭 제곱을 구할 수 있다.
2 ** 2 => 4

이전에는 Math.pow를 사용했다.
Math.pow(2,2)

7.10 그 외의 연산자

  • ? : 옵셔널 체이닝 연산자
  • ?? : null 병합 연산자
  • delete : 프로퍼티 삭제
  • new : 생성자 함수를 호출할 때 사용해서 인스턴스 생성
  • instanceof : 인스턴스인지 확인
  • in : 프로퍼티 존재 확인
profile
주경야독

0개의 댓글