비교 연산자

·2022년 11월 2일
0

비교 연산자

  • boolean값 반환
  • 두 개 이상의 값 비교
  • 왼쪽의 피연산자 기준
  • 주로 조건문에서 많이 사용되며 결과값은 true(1)와 false(0)으로 출력
  • 자바스크립트에서는 boolean을 넣지 않아도 자동으로 변환해 연산
  • 서로 다른 타입의 값을 비교할 땐 숫자형으로 형 변환이 이뤄지고 난 후 비교가 진행됨(일치 연산자===는 제외. 엄격한 비교를 한다는 말씀)

종류

  • <, > 크다, 작다
  • <=, >= 크거나 같다, 작거나 같다
  • !=, !== 일치하지 않다, 완전히 일치하진 않다
  • ==, === 일치, 완전일치 (동등 연산자, 일치 연산자)

동등 연산자 ==

형이 다른 값끼리 비교할 때 피연산자의 자료형을 숫자형으로 바꾼 후 비교를 진행합니다.
기타 비교 연산자들 < > <= >= 역시 피연산자의 자료형을 숫자형으로 바꾼 후 비교를 진행합니다.

  • 숫자 비교
<script>
let i;
i = 5 < 4;//~보다 작다. 거짓 false == 0 (boolean)
i = 5 > 4;//~보다 크다. 참 true == 1 (boolean)
i = 5 == 4;//같다. false
i = 5 != 4;//같지 않다. true 
i = 5 <= 4;//작거나 같다. false
i = 5>=4;//크거나 같다. true
</script>

  • 문자 비교
  • 문자열끼리의 비교는 문자의 우선순위로 비교(앞에 나올수록 값이 작음)
<script>
i = `korea` > `america`;// true. 11k > 1a (유니코드 순서)
i = `apple` > `ape`;// true. 첫번째 자리수가 동일하면 두번째 자리수 비교, 두번째 자리수 동일하면 세번째 자리수 비교
i = `한글` > `영어`; // true
i = `한글` > `english`;// true
</script>

  • 숫자와 문자 비교
<script>
console.log(1 == true); // true

console.log(`345` == 345); // true *숫자형 문자열은 자동변환되어 비교*
console.log(`15` > "12"); // true
console.log(`01` == 1); // true

// 일치 연산자는 0과 false를 구별하지 못함
console.log(0 == false); // true 
console.log("" == false); //true 
console.log("" == 0); //true 
</script>

  • null비교
  • 동등 연산자 ==는 피연산자가 undefined나 null일 때 형 변환을 하지 않음
  • == 이외의 비교 연산자는 null을 숫자형으로 변환함( <, >, <=, >= 등)
<script>
-nullundefined 끼리는 *true*
console.log(null == undefined); //true

-null, undefined의 각 각 비교값은 대부분 false
console.log(`` == null); //false
console.log(0 == null); //false
console.log(0 >= null); //*true* 0은 null보다 크거나 같다. 동등 연산자 이외의 비교 연산자는 null을 숫자형으로 변환한다(0으로)
</script>

  • undefined 비교
<script>
-nullundefined 끼리는 *true*
console.log(null == undefined); //true

-null, undefined의 각 각 비교값은 대부분 false
console.log("" == undefined); //false
console.log(0 == undefined); //false
console.log(0 >= undefined); //false. >인 경우 숫자형 변환은 null만 해당(null=0). (undefined = NaN) undefined는 숫자로 변환x
</script>

일치 연산자

  • === 완전 일치. 데이터 타입까지 완전히 같다(엄격한 비교)
  • !== 완전히 같진 않다.
<script>
console.log(`123` === 123); //false 데이터의 타입이 다름
console.log(`` === 0); // false. 문자열과 숫자이기 때문
console.log(0 === false); // false. string과 boolean
console.log(null === undefined); // false. 데이터의 타입이 다름(null과 undefined는 어디에도 속해있지 않은 각자의 데이터 값)
</script>
<script>
!== 데이터 타입까지 완전히 같진 않다.
console.log(`` == 0); //true  
console.log(`` != 0); //false 

console.log(`` !== 0); //true 데이터의 종류는 같지 않다.
console.log(null !== undefined); //true
</script>

일치 연산자(===)를 제외한 비교 연산자의 피연산자에 undefined나 null이 오지 않도록 하자
또한, undefined나 null이 될 가능성이 있는 변수가 <, >, <=, >=의 피연산자가 되지 않도록 하자

profile
저녁놀 마을 사람

0개의 댓글

관련 채용 정보