JS. 비교연산자

MJ·2022년 8월 20일
0

Java Script

목록 보기
14/57
post-thumbnail

비교 연산자

  • 부등호를 사용해서 피 연산자간의 값을 비교합니다.

  • 연산자의 자료형이 다를 경우 숫자형으로 변환해서 비교합니다.

a > b	: a가 b보다 큼
a >= b	: a가 b보다 크거나 같음 
a == b	: a와 b가 같음 ( 동등 연산자 )
a != b	: a와 b가 다름 ( 부등 연산자 )



1. 비교 연산자의 값은 논리형으로 반환

  • 비교 연산자로 연산의 결과가 나오면 논리형으로 반환합니다.
alert( 2 > 1 );		// 2는 1보다 크다 => 참 (true)
alert( 2 == 1 );	// 2는 1과 같다 => 거짓 (false)
alert( 2 != 1 );	// 2는 1과 같지 않다 => 참 (true)

코드 확인



2. 문자열 비교

  • Java Script는 문자열을 비교할 때 유니코드표를 통해서 문자열의 크기를 비교합니다.

  • 유니코드표에서는 소문자가 대문자보다 값이 크고, 알파벳 순서로 크기가 커집니다.
    (a : 제일 작음 / z : 제일 큼)

alert( 'Z' > 'A' );			// true
// Z가 A보다 유니코드 값이 큽니다


alert( 'Glow' > 'Glee' );	// true
/*
1) G와 G비교 = 같음
2) l과 l 비교 = 같음
3) o와 e비교 = o가 더 크다 
즉, Glow는 Glee보다 크다
*/


alert( 'Bee' > 'Be' );		// true
/* 
1) B와 B비교 = 같음
2) e와 e비교 = 같음 
3) e와 비교할 문자열이 없다 => 문자열이 긴쪽이 더 크다
즉, Bee가 Be보다 크다.

만약 'Bee' > 'Ce' 였다면, 문자열은 전자가 더 길지만 처음의 숫자는 C가 더 크므로, 이 비교는 거짓이 된다.
*/



3. 동등연산자

  • 피 연산자가 동일한 값을 가지고 있는지 비교합니다. ==

  • 피 연산자의 자료형이 서로 다르다면, 숫자형으로 형 변환해서 비교합니다.

✅ 동등 연산자에서 nullundefined는 형 변환 하지 않습니다.

alert('2' > 1);		// 문자열을 숫자로 변경, 2는 1보다 크다 = 참
alert('01' == 1);	// 문자열을 숫자로 변경, 1은 1과 같다 = 참
alert(true == 1);	// 논리형을 숫자로 변경, 1은 1과 같다 = 참 


// 다른 예제 
let a = 0;		// 숫자형 0
let b = '0';	// 문자형 '0'

alert( Boolean(a) );	// a(0)을 논리형으로 형 변환 > 정수 0은 false
alert( Boolean(b) );	// b('0')을 논리형으로 형 변환 > 문자열 '0'은 값이 있으므로 true

alert ( a == b );		// true, a와 b는 같다.


/* */
서로 다른 값이지만, 동등 연산자로 비교할 때는 숫자형으로 형 변환 한다.
문자열 '0'을 숫자로 형 변환하면 정수 0이기 때문에, a == b 는 같다.



4. 일치 연산자

  • 일치 연산자는 피 연산자간의 자료형이 일치하는지 비교할 때 사용한다.

  • 동등 연산자와 다르게 형 변환을 하지 않습니다.

alert( 0 == false );	// true, 0과 0은 같다.
alert( 0 === false );	// false, 0과 false는 다르다.


/* */
일치 연산자는 비교할 때 숫자형으로 형 변환하지 않기 때문에 0false는 다르다고 나옴
비교 결과가 정확하기 때문에 오류가 발생할 확률을 줄여줍니다.



5. 부등 연산자, 불일치 연산자

  • 부등 연산자는, 피 연산자간의 값이 동등하지 않은지 비교할 때 사용
    부등 연산자는 동등 연산자와 마찬가지로 숫자형으로 형 변환하고 비교

  • 불일치 연산자는, 피 연산자간의 자료형이 일치하지 않은지 비교할 때 사용
    불일치 연산자는 일치 연산자와 마찬가지로 숫자형으로 형 변환하지 않고 비교한다.

alert( 1 != true );		// false, 1과 1은 같다.
alert( 1 !== true );	// true, 1과 true은 일치하지 않다.



6. nullundefined 비교

  • nullundefinedJS에서 같은 값으로 표현합니다.

  • 즉, 동등 연산자로 비교할 때는 true 반환, 일치 연산자로 비교할 때는 false를 반환한다.

alert( null === undefined );	// false, null과 undefined는 자료형이 다르다.
alert( null == undefined );		// true, null과 undefined는 같은 값이다.



7. null과 0 비교

  • null을 숫자형으로 형 변환하면 0이 된다.
    다만 동등 연산자에서는 null을 형 변환하지 않기 때문에 다른 값이라고 표시된다.

⚠️null 자료형

동등 연산자에서는 숫자형으로 형 변환하지 않는다.
다른 비교 연산자(>, <, >=) 등을 사용할 때는 형 변환한다.

alert( null > 0 );	// false, 0은 0보다 크지 않다
alert( null == 0 );	// false, null은 0과 같지 않다.
alert( null >= 0 );	// true, 0은 0보다 크거나 같다.


/* */
null > 0
1) 동등 연산자가 아닌 비교 연산자는 null을 형 변환 함
2) 00보다 크지 않으므로 false 


null == 0
1) 동등 연산자는 null을 형 변환 하지 않음
2) null0이랑 같지 않으므로 false


null >= 0 또는 null <=0
1) 동등 연산자가 아니므로 null은 형 변환
2) 00보다 크거나 같다. 같으므로 true



8. undefined와 다른 자료형 비교

  • undefinednull을 제외한 나머지 값에 대해서 무조건 거짓을 반환합니다.

  • 즉 다른 자료형과는 비교할 수 없다.

alert(undefined > 0);	// 거짓
alert(undefined > "0");	// 거짓
alert(undefined == 0);	// 거짓
alert(undefined == null);	// 참



정리

  1. 동등연산자는 nullundefined를 비교할 때 같은 값이라고 판단한다.
  2. nundefinednull을 제외한 다른 자료형과 비교하면 모두 거짓이 나온다. ( 비교 x )
  3. null은 동등 연산자를 제외한 다른 비교연산자를 사용하면, 다른 자료형과 비교할 수 있다.
profile
프론트엔드 개발자가 되기 위한 학습 과정을 정리하는 블로그

0개의 댓글