[JavaScript] 연산자 / 제어문
연산자
Java / C와 별다른 특이점은 없다.
let c = 30;
c++; // 다른 연산을 먼저 수행한 후 피연산자인 c의 값을 증가시킨다.
++c; // 피연산자인 c의 값을 먼저 증가시킨 후 다른 연산을 수행한다.
후위 증감 연산자와 전위 증감 연산자의 차이점을 알아두자.
이 외에도 +와 -를 한 번만 사용하는 단항 연산자는 Number타입에 대해 부호를 변환시키는 것 외에 피연산자를 Number타입으로 변환하는 기능을 하기도 한다.
'1' + 2 // 12
1 + 2 // 3
1 + true // 2
1 + null // 1
1 + false // 1
1 + uundefined // undefined
+연산자를 사용할 때 피연산자 중 하나 이상이 문자열인 경우 문자열 타입으로 변환 후 concatenation을 수행하지만, 문자열이 없는 경우에는 Number타입이 우선된다.
비교 연산자에서 ==와 ===의 차이점에 대해 알아보자.
==는 값만 비교하고 ===는 값과 타입 모두 비교한다.
==연산자를 사용해서 비교할 경우 두 피연산자가 타입이 다르더라도 암묵적 타입 변환 후에 같은 값일 수 있다면 true를 반환한다.
!=와 !==도 같은 역할을 하고, 되도록이면 확실한 비교를 위해 ===연산자를 사용하도록 하자. (삼항 연산자에서도 ===를 사용해서 비교한다.)
단 NaN은 예외인데, NaN === NaN시 false를 반환한다.
NaN인지 조사하기 위해서는 Number.isNaN() 함수를 사용한다.
(좀 더 확실하게 비교하려면 Object.is() 메서드를 사용하면 된다. ===와 거의 동일하지만 좀 더 확실하게 비교한다고 이해할 수 있다.)
피연산자의 데이터 타입을 알고 싶을 때는 typeof 연산자를 사용한다.
typeof null // object
typeof asdf // undefined
null을 typeof연산자로 연산 시 object를 반환하고, 선언되지 않은 변수명을 연산 시 undefined가 반환된다.
자바스크립트의 버그 중 하나로 생각하자.
제어문
제어문은 Java C등 다른 언어들과 같은 형식을 사용한다.
'Programming Language > JavaScript' 카테고리의 다른 글
[JavaScript] 스코프 (0) | 2022.03.10 |
---|---|
[JavaScript] 함수 (0) | 2022.03.10 |
[JavaScript] 타입 변환 / 단축 평가 (0) | 2022.03.08 |
[JavaScript] 리터럴 / 타입 (0) | 2022.03.07 |
[JavaScript] 입문 / 변수 (0) | 2022.03.07 |
댓글
이 글 공유하기
다른 글
-
[JavaScript] 함수
[JavaScript] 함수
2022.03.10 -
[JavaScript] 타입 변환 / 단축 평가
[JavaScript] 타입 변환 / 단축 평가
2022.03.08 -
[JavaScript] 리터럴 / 타입
[JavaScript] 리터럴 / 타입
2022.03.07 -
[JavaScript] 입문 / 변수
[JavaScript] 입문 / 변수
2022.03.07