'==' 와 '===' 차이점

leehowook·2022년 5월 19일
0

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

🧐 #간단한 예제

🔍 숫자와 불리언 비교

✔ 0값은 false와 동일하므로 -> true 출력

0 == false // true

✔ 두 피연산자의 유형이 다르기 때문에 ->false

0 === false // expected output: false 
console.log(typeof 0); 	// expected output: "number"
console.log(typeof false); // expected output: "boolean"

🔍 숫자와 문자열 비교

✔ 자동 유형변화 비교

2 == "2" // expected output: true

✔ 두 피연산자의 유형이 다르기 때문에 ->false

2 === "2" // expected output: false 
console.log(typeof 2);	// expected output: "number"
console.log(typeof "2");  // expected output: "string"

서로 호환되지 않는 두 변수를 비교하면 컴파일 오류* 를
일으키는 자바 평등 연산자(Java Equality 연산자)와 많이 비슷하다.
🤔 #궁굼한 케이스들

🔍 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)은, 어떤 것과도 같지 않다는 것을 기억해야 한다.

//출처 : https://velog.io/@filoscoder/-%EC%99%80-%EC%9D%98-%EC%B0%A8%EC%9D%B4-oak1091tes

profile
be higher

0개의 댓글