Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

codingfarm

비교 연산자(Comparison Operator) 본문

Programming Language/JavaScript

비교 연산자(Comparison Operator)

scarecrow1992 2020. 11. 15. 13:29
비교 연산자 의미 사례 설명
== 동등 비교 x == y x와 y의 값이 같음
=== 일치 비교 x === y x와 y의 값과 타입이 같음
!= 부동등 비교 x != y x와 y의 값이 다름
!== 불일치 비교 x !== y x와 y의 값과 타입이 다름
  • 타입은 개발자의 의도와 상관없이 JS에 의해 변환되기도 한다.(암묵적 타입 변환)
  • 동등비교(==) 연산자는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다.
//동등 비교
5 == 5;		// true

// 타입은 다르지만 암묵적 타입 변환을 통해 타입을 일치시키면 동등하다.
5 == '5';	//true
  • 암묵적 형변환은 결과를 예측하기 어렵게 만들기도 한다.
  • 아래는 안티패턴이므로 가능하면 쓰지 말자
'0' == '';			// false
0 == '' ;			// true
0 == '0';			// true
false == 'false';	// false
false == '0';		// true
false == null;		// false
false == undefined;	// false

 

  • 동등비교 연산자 대신 가급적 일치 비교(===)를 쓰도록 하자.
  • 일치비교연산에서 NaN 타입을 주의해야한다.
    • NaN은 자신과 일치하지 않는 유일한 값이다.
NaN === NaN;	// false

 

  • 숫자 0은 양과 음의 0이 있으며 이들을 비교하면 true를 반환한다.
0 === -0;		// true
0 == -0;		// true

 


Object.is 메서드

  • ES6에서 도입된 Object.is 메서드는 예측 가능한 정확한 비교 결과를 반환한다.
-0 === +0;				// true
Object.is(-0, +0);		// false

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

 


typeof 연산자

  • typeof 연산자는 피 연산자의 데이터 타입을 문자여로 반환한다.
  • 7가지 문자열 string, number, boolean, undefined, symbol, object, function 중 하나를 반환한다.
  • null을 반환하는 경우는 없다.
  • typeof가 반한하는 타입과 실제 타입이 100% 일치하지는 않는다.
typeof ''				// string
typeof 1				// number
typeof NaN			// number
typeof true			// boolean
typeof undefined		// undefined
typeof Symbol()			// symbol
typeof null				// object
typeof []				// object
typeof {}				// object
typeof new Date()		// object
typeof /test/gi			// object
typeof function () {}		// function

 

 

 

'Programming Language > JavaScript' 카테고리의 다른 글

원시 값과 객체의 비교  (0) 2021.02.17
객체 리터럴  (0) 2020.11.15
데이터 타입(Data Type)  (0) 2020.11.14
표현식과 문(expression and statement)  (0) 2020.11.14
변수(Variable)  (0) 2020.11.14
Comments