본문 바로가기
HTML, CSS, JavaScript/자바스크립트

비교 연산자

by JDI_ 2022. 6. 27.

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가 된다.

 

참고 : https://ko.javascript.info/

'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

댓글