[JavaScript] =, ==, ===

bbio3o·2021년 2월 21일
0

JavaScript

목록 보기
10/13
post-thumbnail

출처를 정리한 내용입니다.

📌 =, ==, === 이게뭘까요?

자바스크립트는 엄격한 비교유형변환 비교를 모두 지원하므로, 어떤 연산자가 어떤 비교조건에 사용되는지가 중요합니다.

'='는 value 값을 의미합니다.
ex)
number =2

'=='는 value와 value를 비교합니다. 비교하는 두 개의 값(피연산자)을 강제로 같은 형으로 변환한 후, 비교를 수행합니다.
즉, 두 값의 타입이 다르더라도, 형 변환된 값이 같다면 true를 리턴합니다.
ex)
a = 10
b = '10'
a == b // true

'==='는 value와 data type을 비교합니다. 비교하는 두 개의 값(피연산자)의 타입과 값이 모두 같을 경우에만, true를 리턴합니다.
ex)
a = 10
a === 10 // true
a === '10' // false


📌 null 과 undefined

// 자동 유형변화 비교
null == undefined // true

// 두 피연산자의 유형이 다르기 때문에 ->false
null === undefined // false
console.log(typeof null);	// "object"
console.log(typeof undefined);  // "undefined"

📌 != 과 !==

유형 변환 비교와 엄격한 비교의 [값]과 [자료형]의 다름을 boolean 형식으로 반환합니다.

// 값이 다르지 않음으로 (자료형 비교 안함)
2 != "2" // false

// 두 피연산자의 유형이 다른 것이 맞기 때문에 -> true
2 !== "2" // true 
console.log(typeof 2);	// "number"
console.log(typeof "2");  // "string"

📌그렇다면 NaN은?

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


📌 무엇을 써야하나?

변수를 비교하거나 어떤 비교를 위해 항상 '===' 연산자를 사용 할 것을 권장합니다.
가능한 '==' 연산자를 사용하지 않도록 하고, 대신 직접 자료형을 변환하여(casting) 보다 코드 가독성을 높이도록 합니다.

profile
그림도 그리는 개발자 🎨👩‍💻

0개의 댓글