자바스크립트 Boolean – VS ABAP BOOL

자바스크립트 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

자바스크립트 boolean 일치 비교 연산자

중요한 것 점은, 자바스크립트에서는 비교 연산자가 == 가 아닌 ===, != 가 아닌 !== 로 해야합니다. 일치 비교 연산자(===, !==)는 동등 비교 연산자(==, !=) 과는 의미가 다릅니다.

 

논리부정 연산자

 

논리 부정 연산자란 계산된 결과를 반대로 바꾸어 주는 역할을 합니다. ABAP의 경우에는 NOT 키워드를 사용해서 표현되기도 합니다.

CHECK NOT wa1-carrid IS INITIAL

자바스크립트에서는 다음과 같이 사용됩니다.

!false

자바스크립트 boolean 논리부정 연산자

그 논리를 반대로 바꾸어 줍니다. 아래의 결과는 true의 결과를 반전하여 false로 변경

!(10 === 10)
!("안녕".length >= 5 )

자바스크립트 boolean 논리부정 연산자2

논리합 연산자

 

논리합 연산자란 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"

자바스크립트 boolean - typeof 자료형

동등 비교 연산자, ===, !== 와 ==, != 와의 차이점은

 

우선 동등 비교 연산자는 항상 비교할 대상의 값의 형변환 이후 사용되어야 하므로, ==, != 가 자주 사용되지 않습니다. 우선 그 결과의 예측이 헷갈려서 잘못된 코드를 작성할 가능성이 높습니다.

숫자 2와 문자 “2” 의 결과는 false(===)이어야 하지 이 값의 결과가 true(==)로 나오게 되면 혼동이 되는 상황이 있을 수도 있습니다. 0 값과 false의 값도 false로 정의(===)되어야 하는 것인데 true(==)로 나오면 비슷한 상황이 될 수 있습니다.

결국 동등 비교 연산자(==, !=)와 일치 비교 연산자(===, !==)의 가장 큰 차이는 형변환을 하냐 안하냐인데, 혼용해서 사용될 상황은 많지 않으므로 최대한 일치 비교 연산자를 쓴다고 생각하되, 꼭 필요한 부분일 때에만 동등 비교 연산자를 활용하는 것이 좋을 것 같습니다.

이상으로, 자바스크립트에서의 Boolean 타입을 알아보았습니다. 더 자세한 자바스크립트의 상세는 이 글이 많은 도움이 되실 것 같습니다. 

그리고 자바스크립트를 처음 배울 때 익혀야할 코딩 컨벤션은 이 글을 참고해 보시기 바랍니다.