DeepDiveJS Chapter 07. 연산자
[07장. 연산자]
</br>
✏️ 연산자의 우선순위
연산자의 우선순위를 헷갈리게 되면, 종종 코드를 짤 때 오류가 발생하게 된다. 코드의 연산자는 단순히 생각하는 사칙연산 뿐만 아니라 할당, 삼항 연산, 심지어 쉼표를 통한 구분까지 있다.
| 우선순위 | 내용 |
|---|---|
| 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 | , |
</br>
✏️ 연산자의 결합 순서
연산자에 따라서 왼쪽부터 읽히는 것도, 오른쪽부터 읽히는 것도 있다.
| 결합 순서 | 연산자 |
|---|---|
| 좌 -> 우 | +, -, /, %, <, <=, >, >=, &&, ||, ., [], (), ??, ?, in, instanceof |
| 우 -> 좌 | ++, –, 할당 연산자(=, +=, -=, …), !x, +x, -x, ++x, –x, typeof, delete, ? … : … (삼항 연산자) |