자바스크립트 boolean 형은 다음과 같으며, 여타의 프로그래밍 언어와도 마찬가지로 존재하는 자료형, 즉, true 및 false 값만 존재하는 Boolean 자료형과 다르지 않습니다.
true
false
ABAP에서는 보통 ‘X’ = true, ” = false 혹은 ABAP_BOOL 형태로 사용하게 됩니다.
DATA does_exist TYPE abap_bool.
does_exist = abap_true.
IF does_exist = abap_true.
...
ENDIF.
자바스크립트 역시 boolean은 값의 비교를 통해 생성됩니다.
if (x === 10) {
// true일 때 실행
} else {
// false일 때 실행
}
IF LV_BOOL == ABAP_TRUE.
// true일 때 실행
ELSE.
// false일 때 실행
ENDIF.
일치 비교 연산자
일치 연산자(===, strict equality)는 좌측 값과 우측 값의 피연산자가 값과 타입이 모두 모두 일치하는 경우에만 true를 반환합니다.
ABAP의 경우는 다음과 같이, 키워드 방식이 사용되기도 하는데요,
- EQ – 같다
- BT – 사이값
- NB – 사이값 제외
- GE – 이상
- LE – 이하
- GT – 초과
- LT – 미만
- NE – 같지 않다
자바스크립트 Boolean 과 관련하여 중요한 사항은 일치 비교 연산자인데요, 값 뿐만 아니라 typeof 로 확인할 수 있는 타입까지도 일치해야 합니다. 또 피연산자들의 결합 순서는 왼쪽부터 시작해서 오른쪽 처리됩니다.
자바스크립트에서는 다음과 같이 제공하고 있습니다.
- === 양쪽이 같다
- !== 양쪽이 다르다
- > 왼쪽이 더 크다
- < 오른쪽이 더 크다
- >= 왼쪽이 더 크거나 같다
- <= 오른쪽이 더 크거나 같다
1 === 1
1 !== 1
1 > 1
1 >= 1
1 < 1
1 <= 2
중요한 것 점은, 자바스크립트에서는 비교 연산자가 == 가 아닌 ===, != 가 아닌 !== 로 해야합니다. 일치 비교 연산자(===, !==)는 동등 비교 연산자(==, !=) 과는 의미가 다릅니다.
논리부정 연산자
논리 부정 연산자란 계산된 결과를 반대로 바꾸어 주는 역할을 합니다. ABAP의 경우에는 NOT 키워드를 사용해서 표현되기도 합니다.
CHECK NOT wa1-carrid IS INITIAL
자바스크립트에서는 다음과 같이 사용됩니다.
!false
그 논리를 반대로 바꾸어 줍니다. 아래의 결과는 true의 결과를 반전하여 false로 변경
!(10 === 10)
!("안녕".length >= 5 )
논리합 연산자
논리합 연산자란 2개 이상의 결과로부터 true, false를 확인함에 있어 하나라도 true가 있다면 전체 결과를 true로 연산을 하게 됩니다.
즉, 두개의 피연산자의 조합으로 결과를 만들며 , ABAP 에서는 AND와 OR 로 표현되는 연산자 입니다.
IF p_chk1 eq 'X' and p_chek2 eq 'X'.
// 모두 true이어야 실행됨
Endif.
// id가 2이거나 3일 떄 실행됨
SELECT * FROM my_table
WHERE condition 1
AND condition 2
AND ( id EQ '2' OR id EQ '3' ).
자바스크립트에서는 다음과 같이 활용됩니다.
연산자 : ||(또는)
true || true >> true
true || false >> true
false || true >> true
false || false >> false
논리곱 연산자
논리곱 연산자란 2개 이상의 결과로부터 true, false를 확인함에 있어 하나라도 false가 있다면 전체 결과는 false로 연산을 하게 됩니다.
연산자 : &&(그리고)
true && true >> true
true && false >> false
false &&true >> false
false && false >> false
참고로 비트 연산자인 | 와 & 는 ||, &&와 다르게 동작합니다.
- 비트 합 연산자 : |
- 비트 곱 연산자 : &
변수의 타입 판단 – typeof 자료형
자바스크립트에서는 변수 타입을 문자 형태의 결과로 반환하는 함수인 typeof 연산자가 제공합니다. typeof는 boolean, number, string, symbol, object, function, undefined, null 등의 7개의 타입 변수 중 어떤 타입인가를 확인할 때 사용합니다.
단항 연산자와 같은 개념이며 다음과 같이 사용이 됩니다.
typeof("사과") === "string"
typeof("사과") === "number"
typeof(27) === "number"
typeof(1===1) == "boolean"
동등 비교 연산자, ===, !== 와 ==, != 와의 차이점은
우선 동등 비교 연산자는 항상 비교할 대상의 값의 형변환 이후 사용되어야 하므로, ==, != 가 자주 사용되지 않습니다. 우선 그 결과의 예측이 헷갈려서 잘못된 코드를 작성할 가능성이 높습니다.
숫자 2와 문자 “2” 의 결과는 false(===)이어야 하지 이 값의 결과가 true(==)로 나오게 되면 혼동이 되는 상황이 있을 수도 있습니다. 0 값과 false의 값도 false로 정의(===)되어야 하는 것인데 true(==)로 나오면 비슷한 상황이 될 수 있습니다.
결국 동등 비교 연산자(==, !=)와 일치 비교 연산자(===, !==)의 가장 큰 차이는 형변환을 하냐 안하냐인데, 혼용해서 사용될 상황은 많지 않으므로 최대한 일치 비교 연산자를 쓴다고 생각하되, 꼭 필요한 부분일 때에만 동등 비교 연산자를 활용하는 것이 좋을 것 같습니다.
이상으로, 자바스크립트에서의 Boolean 타입을 알아보았습니다. 더 자세한 자바스크립트의 상세는 이 글이 많은 도움이 되실 것 같습니다.
그리고 자바스크립트를 처음 배울 때 익혀야할 코딩 컨벤션은 이 글을 참고해 보시기 바랍니다.