1. 비교 연산자
값을 비교할 때 쓰고, 참 거짓 중 하나를 반환한다.
>,< : 크다 작다
>=,<= : 크거나 같다, 작거나 같다
== : 등호, 같다
!= : 같지 않다
alert( 2 > 1 ); //true
alert( 1 < 3 ); //true
alert( 3 >= 5 ); //false
alert( 3 <= 5 ); //true
alert( 3 == 2 ); //false
alert( 3 != 2 ); //true
2. 문자열 비교
'유니코드' 순으로 문자열을 비교한다.
우리가 쓰는 문자를 컴퓨터는 미리 약속한 특정 숫자로 인식해서 받아들이는데, 이 숫자가 크고 작은 걸 인식해서 비교한다
(아스키코드, 유니코드 참고)
첫 글자부터 비교를 시작하고 크고 작음이 판단되면 비교를 멈춘다.
같은 문자의 연속이라면 길이가 더 긴 문자열이 크다고 판단한다.
alert( 'Z' > 'A'); // true
alert( 'Glow' > 'Glee'); //true
alert( 'Bee' > 'Be'); //true
alert( 'B' < 'A' ); //flase
3. 다른 형을 가진 값 간의 비교
비교하는 값들의 자료형이 다르면 자바스크립트는 숫자형으로 바꿔서 비교한다.
alert( '2' > 1 ); //true
alert( '01' == 1); // true
4. 일치 연산자
동등 연산자 == 는 0과 false를 구분하지 못한다.
구분하려면 일치 연산자 ===를 쓰면된다. (==의 엄격한 버전) (!== 불일치)
alert( 0 == false); //true
alert( 0 === false); //false
5. null이나 undefined 비교
null을 undefined와 ==로 비교하면 true, ===로 비교하면 false가 나온다
null은 0으로, undefined는 NaN으로 변환된다
null 과 0을 비교
alert( null > 0 ); // false
alert( null == 0 ); // false
alert( null >= 0 ); // true
null은 0으로 변환되어 비교되서 null > 0 은 false가 나오고, null >= 0 은 true가 나왔다.
그런데 null == 0은 false다. 왜냐하면 == 연산자는 null이나 undefined일 때 형변환을 하지 않기 때문이다.
undefined 와 0을 비교
undefined는 다른 값과 비교하면 안된다.
alert( undefined > 0 ); //false
alert( undefined < 0 ); //false
alert( undefined == 0 ); //false
undefined는 NaN으로 변환되기 때문에 첫번째와 두번째가 false가 되고, ==연산자는 undefined와 null을 형변환 하지 않기 때문에 false가 된다.
'HTML, CSS, JavaScript > 자바스크립트' 카테고리의 다른 글
조건문 (switch-case) (0) | 2022.06.28 |
---|---|
조건문(if-else if-else) (0) | 2022.06.27 |
기본 연산자와 수학 (0) | 2022.06.27 |
형변환 (0) | 2022.06.26 |
alert, prompt, confirm (0) | 2022.06.26 |
댓글