개키우는개발자 : )

자바스크립트 비교 연산자 본문

JavaScript/JavaScript

자바스크립트 비교 연산자

DOGvelopers 2019. 5. 15. 21:45
반응형

비교(Comparisons)

 

수학에서 사용하는 많은 연사자 기호들이 있다.

 

< 왼쪽보다 오른쪽이 크다

> 왼쪽이 오른쪽보다 크다

≤: 왼쪽보다 오른쪽이 크거나 같다.

≥: 왼쪽이 오른쪽보다 크거나 같다.

=: 같다.

≠: 등호 / 를 그은 것으로 식이 성립되지 않을 때 사용한다. 예를 들어 1≠2와 같은 경우 저 기호를 사용할 수 있다.

 

자바스크립트에서도 비교 연산자 기호가 있다.

 

< 왼쪽보다 오른쪽이 크다

> 왼쪽이 오른쪽보다 크다

<=: 왼쪽보다 오른쪽이 크거나 같다. 

>=: 왼쪽이 오른쪽보다 크거나 같다.

==: 같다.

!= : 등호 / 를 그은 것으로 식이 성립되지 않을 때 사용한다. 예를 들어 1≠2와 같은 경우 저 기호를 사용할 수 있다.

= : 대입 연산자. a = b, a에 b의 값이 대입된다.

 

값의 결과 : Boolean 

 

비교 값을 반환할 때 결과 값은 Boolean 값입니다.

true - '예', '정확함, '진실'을 의미합니다.

false - '아니오', '잘못' 또는 '진실이 아닙니다'를 의미합니다.

 

예 : 

alert( 2 > 1 );  // true (correct)
alert( 2 == 1 ); // false (wrong)
alert( 2 != 1 ); // true (correct)

비교 결과는 모든 값과 마찬가지로 변수에 할당할 수 있습니다.

let result = 5 > 4; // assign the result of the comparison
alert( result ); // true

문자열 비교

alert( 'Z' > 'A' ); // true
alert( 'Glow' > 'Glee' ); // true
alert( 'Bee' > 'Be' ); // true

첫번째 피연산자 G 와 두번째 피연산자 G는 같습니다.
'G'.charCodeAt(); == 71
첫번째 피연산자 l 와 두번째 피연산자 l은 같습니다.
'l'.charCodeAt(); == 108
첫번째 피연산자 o 와 두번째 피연산자 e는 다릅니다
'o'.charCodeAt(); == 111 , 'e'.charCodeAt(); == 101
그렇기때문에 Glow > Glee == true

다른 유형의 비교

 

다른 유형의 값을 비교할 때 JavaScript는 값을 숫자로 변환합니다.

예 : 

alert( '2' > 1 ); // true, string '2' becomes a number 2
alert( '01' == 1 ); // true, string '01' becomes a number 1

Boolean의 경우 1은 true 0은 false가 됩니다.

예 :

alert( true == 1 ); // true
alert( false == 0 ); // true

이런 식으로 쓰지 맙시다..

예 : 

let a = 0;
alert( Boolean(a) ); // false

let b = "0";
alert( Boolean(b) ); // true

alert(a == b); // true!

엄격한 평등

 

비교 연산자 중 엄격한 동등성 검사 (===) 이 있다. 참고로 (!==) 도 있다.. 예제는 알아서

이경우는 값도 같고 서로 타입도 같아야 한다.

예 :

alert( 0 === false ); // false, because the types are different
alert( false === false ); // true, because the types are different
alert( '0' === 0 ); // false, because the types are different
alert( 0 === 0 ); // true, because the types are different

 

null 및 undefined 와의 비교

 

둘 다 값이 없다는 뜻이다.

하지만 서로 다른 유형이다.

alert( null === undefined ); // false
alert( null == undefined ); // true

null/undefined숫자로 변환도 가능하다 null 은 0 되고, undefined는 반면 NaN 된다.

 

null vs 0

 

점점 지옥으로 빠지는 거 같다.

null과 0을 비교해 보겠습니다.

alert( null > 0 );  // (1) false
alert( null == 0 ); // (2) false
alert( null >= 0 ); // (3) true

왜?.. null == undefined는 어떤 변환도 없이 서로 같고 다른 값과는 동등하지 않도록 정의됩니다.

그렇기 때문에 null == 0은 거짓인 이유입니다.

뭔 소리 임?..ㅋ

 

비교할 수 없는 undefined

alert( undefined > 0 ); // false (1)
alert( undefined < 0 ); // false (2)
alert( undefined == 0 ); // false (3)

undefined와 유일한 true는 null이다 엄격한 비교가 아닐 때.. 그래서 둘 다 0으로 비교할 때 false 가부다..

아몰랑

반응형

'JavaScript > JavaScript' 카테고리의 다른 글

JavaScript Functions  (0) 2019.11.03
자바스크립트 코드 구조 및 주석  (0) 2019.05.14
자바스크립트 스위치( switch ) 조건문  (0) 2019.05.14
자바스크립트 연산자  (0) 2019.05.11
자바스크립트 사용하기  (0) 2019.05.10
Comments