Javascript / / 2023. 8. 11. 09:56

== === 차이점

728x90
반응형

== 는 Equal Operator 이고, ===는 Strict Equal Operator이다

==는 a == b라고 할 때, a와 b의 값이 같은지를 비교해서 같으면 true 다르면 false라고 한다

===는 Strict, 즉 엄격한 Equal Operator로써 “엄격하게” 같음을 비교할 때 사용하는 연산자이다

===는 a === b라고 할 때, 값과 값의 종류가 모두 같은지를 비교해서 같으면 true 다르면 false라고 한다

쉽게 이야기하자면

<aside> 💡 '=='와 '===' 연산자의 주된 차이점은, 예를 들어, 숫자를 숫자 리터럴과 비교하면, '=='는 그것을 허용하지만, '===' 두 변수의 형식은 동일하지 않은 경우, 값뿐만 아니라 두 변수의 유형도 확인하므로, 허용하지 않는 것이다. 즉, '==='는 'false'으로 반환하고, '=='는 'true'로 반환한

</aside>

  • '==' 연산자를 이용하여 서로 다른 유형의 두 변수의 [값] 비교
  • '==='는 엄격한 비교를 하는 것으로 알려져 있다 ([값 & 자료형] -> true)

 

1) null 와 undefined 비교했을 때 어떤 결과가 나올 것인가?

  • 자동 유형변화 비교
null == undefined // expected output: true
  • 두 피연산자의 유형이 다르기 때문에 ->false
null == undefined // expected output: false
console.log(typeof null);	// expected output: "object"
console.log(typeof undefined);  // expected output: "undefined"

2) '!=' 와 '!==' 비교연산자의 차이는?

예상대로, 유형 변환 비교와 엄격한 비교의 [값]과 [자료형]의 다름을 boolean 형식으로 반환한다

  • 값이 다르지 않음으로 자료형 비교 안 함
2 != "2" // expected output: false
  • 두 피연산자의 유형이 다른 것이 맞기 때문에 true
2 !== "2" // expected output: true
console.log(typeof 2);	// expected output: "number"
console.log(typeof "2");  // expected output: "string"

3) 비교 연산자를 이용하여, 'NaN'을 비교하면?

  • NaN (Not a Number)은, 어떤 것과도 같지 않다는 것을 기억해야 한다.

<aside> 💡 변수를 비교하거나 어떤 비교를 위해 항상 '===' 연산자를 사용 할 것을 권장한다.

가능한 '==' 연산자를 사용하지 않도록 하고, 대신 직접 자료형을 변환하여(casting) 보다 코드 가독성을 높이도록 한다.

</aside>

728x90
반응형

'Javascript' 카테고리의 다른 글

HTML i태그, b태그  (0) 2023.08.14
Node.js 설치 & npm 설치 & npx 설치  (0) 2023.08.11
논리 연산자 (OR, AND, NOT)  (0) 2023.08.10
증감 연산자 (전위, 후위)  (0) 2023.08.10
대입 연산자, 복합 연산자  (0) 2023.08.10
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유