JS/[책] 모던 자바스크립트 Deep Dive

7. 연산자

배워도끝이없네 2021. 8. 18. 21:09

- 피연산자는 으로 평가될 수 있는 표현식이어야 한다.

- 피연산자를 연산하여 새로운 값을 만드는 동사 역활.

 

1. 산술연산자

- 산술연산이 불가능한 경우 NaN을 반환.

 

  1.1 이항 산술 연산자

  - 2개의 피연산자를 산술 연산해 숫자 값을 만든다.

  - 피연산자의 값을 변경하는 효과는 없다.

 

  1.2 단항 산술 연산자 (++, --, +, -)

  - 1개의 피연산자를 연산해 숫자 값을 만든다.

  - 피연산자의 값을 변환하는 부수효과가 있다.

 

  1.3 문자열 연결 연산자 (+)

  - 피연산자중 하나 이상이 문자열인 경우 문자열을 이어준다.

  - true/false, null 등은 강제로 타입이 바뀐다(문자열 형식의 1또는 0 )

 

2. 할당 연산자

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

- = , +=, -=, *=, /=, %=

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

 

3. 비교 연산자

  3.1 동등/일치 비교 연산자

  - 좌항과 우항의 피연산자가 같은 값으로 평가되는지를 불리언으로 반환.

  - ==, ===,  !=, !==

  - 동등 비교 연산자는 암묵적 타입 변환을 통해 타입을 일치시킨 후 값을 비교한다.

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

  - NaN을 조사하려면 isNaN함수를 사용해야 한다.

 

  3.2 대소 관계 비교 연산자

  - >, <, >=, <=

 

4. 삼항 조건 연산자

- 조건식 ? 조건식이 true시 반환할 값 : 조건식이 false일 때 반환할 값 (ex. var result = score >=60 ? 'pass' : 'fail')

- 삼항연산자는 값으로 사용할 수 있지만 if else문은 값으로 사용할 수 없다(표현식이 아닌 문이기 때문)

 

5. 논리 연산자

- || OR, && AND, ! NOT

- 'Cat' && 'Dog' ==> //Dog 단축평가 

 

6. 쉼표 연산자

- 왼쪽 피연산자부터 차례대로 피연산자를 평가하고, 마지막의 피연산자의 평가가 끝나면 마지막 피연산자의 결과를 반환한다.

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

 

7. 그룹 연산자

- 소괄호()로 피연산자를 감싸면, 그룹안의 표현식을 가장 먼저 평가한다.

- 연산자 우선순위가 가장 높다

 

8. typeof 연산자

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

- '' -> "string"

- 1 -> "number"

- NaN -> "number"

- true -> "boolean"

- undefined -> "undefined"

- Symbol() -> "symbol"

- null -> "object"  //버그이지만 기존 코드에 영향을 줄 수 있기 때문에 수정되지 못하고 있다.

- /test/gi -> "object"

- function(){} -> "function"

 

9. 지수 연산자

- **

- 좌항을 밑으로 우항을 지수로 거듭제곱해 숫자 값을 반환한다.

- 음수를 거듭제곱 하려면 괄호로 묶어야 한다.

- 이항 연산자 중에서 우선순위가 가장 높다.

 

10. 그 외의 연산자

- ?. : 옵셔널 체이닝 연산자

- ?? : null 병합 연산자

- delete : 프로퍼티 삭제

- new : 생성자 함수를 호출 할 때 사용하여 인스턴스를 생성

- instanceof : 좌변의 객체가 우변의 생성자 함수와 연결된 인스턴스인지 판별

- in 프로퍼티 존재 확인

 

11. 연산자의 부수 효과

- 대부분 연산자는 다른 코드에 영향을 주지 않지만 부수효과가 있는 연산자는 할당연산자, 증감연산자, delte연산자이다.

 

12. 연산자 우선순위

1. ()

2. new(매개변수 존재), [], (), ?.

3. new(매개변수 미존재)

4. x++, x--

5. !x, +x, -x, --x, ++,x typeof, delete

6. **

7. *, /, &

8. +,-

9. <, , >, >=, in, instanceof

10. ==, !=, ===, !==

11. ??

12. &&

13. ||

14. ?, ..., : ...

15. 할당 연산자

16, ,

'JS > [책] 모던 자바스크립트 Deep Dive' 카테고리의 다른 글

9. 타입 변환과 단축 평가  (0) 2021.08.19
8. 제어문  (0) 2021.08.18
6. 데이터 타입  (0) 2021.08.17
5. 표현식과 문  (0) 2021.08.17
4. 변수  (0) 2021.08.16