[JS] 연산자

김지민·2022년 5월 10일
0

자바스크립트

목록 보기
4/20

값?

식이 평가되어 생성된 결과

표현식?

값으로 평가될 수 있는 문

문?

프로그래밍의 최소 의미 단위

연산자란?

하나 이상의 표현식을 대상으로 하나의 값을 마드는 것

  • 산술 연산자
  • 문자열 연결 연산자
  • 할당 연산자
  • 비교 연산자
  • 논리 연산자
  • 타입 연산자

피연산자?

연산의 대상

산술 연산자

  • 이항 연산자: 2개의 피연산자를 산술 연산하여 숫자로 만듦 (+, - , *, / ,%)

  • 단항 산술 연산자: 1개의 피 연산자를 산술 연산하여 숫자 값을 만듦 (++, --, +,-)

    ++ 전위 증가/ 감소: 먼저 피연산자의 값을 변경시킨 후, 다른 연산의 수행
    ++ 후위 증가/ 감소: 다른 연산 먼저 수행

  • +단항 연산자는 숫자 타입이 아닌 피연산자를 사용하여 숫자타입으로 변환한다. 하지만, 부수효과는 없다

문자열 연결 연산

+연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동장


할당 연산자

할당문은 표현식인 문이다.


비교 연산자

피연산자를 비교한 다음 불리언 값으로 반환

  • 암묵적 타입 변환 때문에, 타입을 일치시긴 후, 같은 값인지 비교한다. 타입이 다르더라도 암무적 타입 변환 후 비교를 한다.

  • 동등 비교 (==) 타입 확인이 없음

  • 일치 비교 (===) 타입 확인까지 함

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


Number.isNam(NaN) //-> true
0 === -0; // -> true
0 == -0; // -> true

Object.is(-0, +0); // -> false
Object.is(NaN,NaN); // -> true

삼항 조건 연산자

var x = 2;

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

console.log(result); // 짝수

삼항 조건 연산자 표현식은 값처럼 사용할 수 있지만 if else 문은 값처럼 사용할 수 없다.

논리 연산자


|| // -> or
&& // -> and
! // -> not

쉽표 연산자

var x,y,z;

x = 1, y = 2, z = 3; //3

typeof 연산자


typeof ""        // -> string
typeof 1         // -> number
typeof NaN       // -> number
typeof true      // -> boolean
typeof undefined // -> undefined
typeof null      // -> object
typeof []        // -> object
typeof {}        // -> object
typeof new Date() // -> object
typeof /test/gi   // -> object

null 타입 확인은 typeof가 아닌 일치 연산자(===)을 사용하자.

var foo = null;

typeof fo === null; // -> false
fo === null;        // -> true

지수 연산자

지수 연산자의 결합 순서는 우항에서 좌항이다.

Math.pow(2,2) // -> 4

연산자의 부수 효과

부수효과가 있는 연산자는 할당 연산자, 증가/감소 연산자, delete 연산자이다.

연산가 우선 순위

1) ()
2) new(매개변수 존재), , , ()(함수호출)
3) new(매개변수 미존재)
4) x++, x-
5) !x, +x, -x, ++x, -x, typeof, delete
6) * (이항 연산자 중에서 우선순위가 가장 높다)
7)
,/,%
8) +,-
9) < , <=, >, >=, in, instanceof
10) ==, !=, ===, !==
11) ?? (null 병합 연산자)
12) &&
13) ||
14) ?...:...
15) 할당 연산자(=,+=,-=,...)
16) ,

연산자 결합 순서

  • 좌항 -> 우항
    +, -, /, %, <, <=, >, >=, &&, ||, ., [], (), ??, ?., in, instanceof
  • 우항 -> 좌항
    ++, --, 할당 연산자(=, +=, -=, …), !x, +x, -x, ++x, –x, typeof, delete, ? … : …, **
profile
💡Habit is a second nature. [Git] https://github.com/Kimjimin97

0개의 댓글