부등호를 사용해서 피 연산자간의 값을 비교합니다.
연산자의 자료형이 다를 경우 숫자형으로 변환해서 비교합니다.
a > b : a가 b보다 큼
a >= b : a가 b보다 크거나 같음
a == b : a와 b가 같음 ( 동등 연산자 )
a != b : a와 b가 다름 ( 부등 연산자 )
alert( 2 > 1 ); // 2는 1보다 크다 => 참 (true)
alert( 2 == 1 ); // 2는 1과 같다 => 거짓 (false)
alert( 2 != 1 ); // 2는 1과 같지 않다 => 참 (true)
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가 더 크므로, 이 비교는 거짓이 된다.
*/
피 연산자가 동일한 값을 가지고 있는지 비교합니다. ==
피 연산자의 자료형이 서로 다르다면, 숫자형으로 형 변환해서 비교합니다.
✅ 동등 연산자에서
null
과undefined
는 형 변환 하지 않습니다.
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 는 같다.
일치 연산자는 피 연산자간의 자료형이 일치하는지 비교할 때 사용한다.
동등 연산자와 다르게 형 변환을 하지 않습니다.
alert( 0 == false ); // true, 0과 0은 같다.
alert( 0 === false ); // false, 0과 false는 다르다.
/* */
일치 연산자는 비교할 때 숫자형으로 형 변환하지 않기 때문에 0과 false는 다르다고 나옴
비교 결과가 정확하기 때문에 오류가 발생할 확률을 줄여줍니다.
부등 연산자는, 피 연산자간의 값이 동등하지 않은지 비교할 때 사용
부등 연산자는 동등 연산자와 마찬가지로 숫자형으로 형 변환하고 비교
불일치 연산자는, 피 연산자간의 자료형이 일치하지 않은지 비교할 때 사용
불일치 연산자는 일치 연산자와 마찬가지로 숫자형으로 형 변환하지 않고 비교한다.
alert( 1 != true ); // false, 1과 1은 같다.
alert( 1 !== true ); // true, 1과 true은 일치하지 않다.
null
과 undefined
비교null
과 undefined
은 JS
에서 같은 값으로 표현합니다.
즉, 동등 연산자로 비교할 때는 true
반환, 일치 연산자로 비교할 때는 false
를 반환한다.
alert( null === undefined ); // false, null과 undefined는 자료형이 다르다.
alert( null == undefined ); // true, null과 undefined는 같은 값이다.
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) 0은 0보다 크지 않으므로 false
null == 0
1) 동등 연산자는 null을 형 변환 하지 않음
2) null은 0이랑 같지 않으므로 false
null >= 0 또는 null <=0
1) 동등 연산자가 아니므로 null은 형 변환
2) 0은 0보다 크거나 같다. 같으므로 true
undefined
는 null
을 제외한 나머지 값에 대해서 무조건 거짓을 반환합니다.
즉 다른 자료형과는 비교할 수 없다.
alert(undefined > 0); // 거짓
alert(undefined > "0"); // 거짓
alert(undefined == 0); // 거짓
alert(undefined == null); // 참
null
과 undefined
를 비교할 때 같은 값이라고 판단한다.nundefined
는 null
을 제외한 다른 자료형과 비교하면 모두 거짓이 나온다. ( 비교 x )null
은 동등 연산자를 제외한 다른 비교연산자를 사용하면, 다른 자료형과 비교할 수 있다.