js- 동등/일치 비교연산자 , 삼항 연산자

hazel's·2022년 4월 23일
0

javascript

목록 보기
7/12
post-thumbnail

비교연산자는 좌항과 우항의 피연산자를 비교한 다음 그 결과를 true/false로 반환한다. 주로 if문이나 for문과 같은 제어문의 조건식에서 주로 사용된다.

1.동등/일치 비교 연산자
좌항과 우항의 피연산자 비교후 불리언값 반환.
다른점: 엄격성 정도

a. 동등 비교 연산자

  • 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치 시킨 후 같은 값인지 비교한다.
//동등비교

1 == 1; //true
//타입은 다르지만 암묵적 타입 변환을 통해 타입일치시 동등

5 == "5"; //true

📌 동등비교 중 결과 예측이 어려운 경우

'0' == ''; //false
0 == ''; //true
0 == '0';//true
false =='false' //false
false == '0'; //true
false == null; //false
false == undefined; //false

2.일치 비교 연산자 (===)
좌항과 우항의 피연산자가 타입도 같고 값도 같은 경우에 한하여 true 반환한다.

/일치 비교
1 === 1; //true
//암묵적 타입 변환을 하지 않고 값비교
//값과 타입이 모두 같을 시에만 true	반환
1 === '1'; //false

❗️NaN
NaN은 자신과 일치하지 않는 값
(객체(함수, 배열)도 서로 일치 하지 않는다 ex: [] === [];//false)

NaN === NaN;//false

숫지가 NaN인지 조사하려면 빌트인 함수 Number.isNaN을 사용한다.

Number.isNaN(NaN); //true
Number.isNaN(10); //false
Number.isNaN(1+undefined); //true

🔎Object.is 메서드
다음과 같은 예측 가능한 정확한 비교 결과를 반환한다. 그외에는 일치 비교 연산자(===)와 동일하게 작동한다.

-0 === +0;//true
Object.is(-0,+0) //false

NaN === NaN; //false
Object.is(NaN, NaN); //true

📌부동등 비교 연산자(!=)와 불일치 비교 연산자(!==)는 각각 동등 비교(==) 연산자와 일치 비교(===) 연산자의 반대 개념이다.

//부동등 비교 
1 != 2; //true
1 != 1; //false
5 != "5"; //false

//불일치 비교
5 !== 7; //true
3 !== 3; //false
3 !== '3';// true
  1. 삼항 조건 연산자
    조건식의 평가 결과에 따라 반환할 값을 결정한다.

조건식 ? 조건식이 true일 때 반환하는 값 : 조건식이 false 일때 반화하는 값

물음표 앞의 첫번째 피연산자는 조건식, 즉 불리언 타입의 값으로 평가될 표현식이다. 만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 암묵적으로 변환한다.
조건식이 참이면 콜론 앞에 두번쨰 피연산자가 평가되어 반환되고, 거짓이면 콜론 뒤의 세번째 피연산자가 평가되어 반환한다.

const num = 5;
let result = num % 2 ? '홀수' : '짝수';

console.log(result); //짝수

📌 if...else 문으로 사용해도 삼항 조건 연산자 표현식을 유사하게 처리할 수 있따. 하지만 차이는 있다. 삼항 조건 연산자 표현식은 값처럼 사용할 수 있지만 if...else문은 값처럼 사용할 수 없다.

if...esle 문은 표현식이 아닌 문이다.


funciton result(num){
  if(num % 2 == 0){
      return "짝수";
  }else{	
      return "홀수";
  }
}


console.log(rusult(4));
//짝수
var num =10;

var result = num % 2? "짝수":"홀수";
console.log(result); //짝수

조건에 따라 어떤값을 결정해야 한다면 if...else문 보다는 삼항 조건 연산자 표현식을 사용하는 편이 유리하다. 그러나 조건에 따라 수행햐 한 문이 하나가 아니라 여러개라면 if...else 문이 더 편리하다.

profile
좋아하는 것을 하나하나 채워가면 행복해질꺼야

0개의 댓글