자바스크립트 연산자 및 우선순위 정리
자바스크립트의 연산자는 대부분 다른 언어와 비슷하기 때문에 전반적인 설명은 아래에 정리한 우선순위를 보면 충분할 듯 합니다. 다만 오해의 소지가 있는 것들만 몇 개 정리하도록 하겠습니다.
1) / 연산자
자바스크립트는 숫자가 모두 64비트 double 형이기 때문에 5 / 2 의 값이 C나 Java처럼 2가 아닌 2.5가 되는 것을 주의해야 합니다.
console.log(5/2); // 2.5
2) typeof null
이전 글(http://zeany.net/56) 에서도 살펴봤는데, null이 할당된 변수의 typeof나 null 자체의 typeof는 null이 아닌 object 입니다.
var x = null;
console.log(x); // null
console.log(typeof x); // object
console.log(typeof null); // object
3) == 와 ===
둘 다 두 값이 일치하는 지를 비교하지만, == 는 가능하면 형 변환을 거쳐서 어떻게든 true를 만들려고 하지만, === 는 형 변환 없이 그대로를 비교하게 됩니다. 그러니, 가급적 비교할 때는 === 를 사용하시기 바랍니다.
console.log(true == 1); // true
console.log(false == 0); // true
console.log(0 == "0"); // true
console.log(true === 1); // false
console.log(false === 0); // false
console.log(0 === "0"); // false
참고로, ==의 부정은 !=이고, ===의 부정은 !== 입니다.
4) **
제곱 (Exponentiation)을 뜻하는 이 연산자는 추가된지 얼마되지 않아 브라우저에 따라 동작하지 않을 수 있으니 사용하지 마세요.
연산자 우선순위는 다음과 같습니다.
우선순위 | 연산자 | 설명 |
19 | ( ) | 괄호 |
18 | . | 객체의 멤버 |
18 | [] | 객체의 멤버 |
17 | () | 함수 호출 |
17 | new | 객체 생성 |
16 | ++ | 증가 (postfix) ex) i++ |
16 | -- | 감소 (postfix) |
15 | ++ | 증가 (prefix) ex) ++i |
15 | -- | 감소 (prefix) |
15 | ! | 논리 부정 |
15 | typeof | 타입 |
14 | * | 곱하기 |
14 | / | 나누기 |
14 | % | 나머지 |
13 | + | 더하기 |
13 | - | 빼기 |
12 | << | 왼쪽 shift |
12 | >> | 오른쪽 shift |
12 | >>> | 부호 무시 오른쪽 shift |
11 | < | 보다 작은 |
11 | <= | 작거나 같은 |
11 | > | 보다 큰 |
11 | >= | 크거나 같은 |
10 | == | 일치 (형변환) |
10 | === | 일치 |
10 | != | 불일치 (형변환) |
10 | !== | 불일치 |
6 | && | 논리 AND |
5 | || | 논리 OR |
3 | = | 할당 |
3 | += |
|
3 | -= |
|
3 | *= |
|
3 | %= |
|
3 | <<= |
|
3 | >>= |
|
3 | >>>= |
|
3 | &= |
|
3 | ^= |
|
3 | != |
|
출처: http://zeany.net/58?category=678338 [소소한 IT 이야기]
'Javascript > JavaScript' 카테고리의 다른 글
[JavaScript] 콜백 (0) | 2020.07.07 |
---|---|
[JavaScript] 값으로서의 함수 (0) | 2020.07.07 |
[JavaScript] 객체 (0) | 2020.07.07 |
[JavaScript] 배열 (0) | 2020.07.07 |
[JavaScript] 함수 정의하는 방법 (0) | 2020.07.07 |
[JavaScript] 비교 ('=='와 '==='의 차이) (0) | 2020.07.07 |
[JavaScript] 자바스크립트 특수문자 인코딩 (0) | 2019.04.23 |
자바스크립트 정규표현식 이용한 replace html(<,>,", ' ,\n) 특수문자로 변환 (0) | 2019.04.23 |