JavaScript === vs ==
Harshit Jindal
2023년1월30일
2021년7월3일

비교 연산자는 두 변수가 같은지 또는 지정된 기준을 따르는 지 확인하는 데 도움이됩니다. 비교 결과가 양호하면true
를 반환합니다. 그렇지 않으면false
를 반환합니다. 이 튜토리얼은 비교 연산자 중에서 가장 혼동되는 주제를 설명하고 어느 것이 연산자 (==
또는===
)와 같은지 사용할시기를 알려줍니다.
단일 같음=
는 할당 연산이고 비교 연산자이기 때문에 이중 같음==
및 삼중 같음===
과는 상당히 다릅니다. 따라서 일반적으로==
와===
사이에 혼동이 발생합니다.
JavaScript의 느슨한 같음 연산자 (==
)
==
연산자 또는 같음 연산자는 추상 비교 연산자라고도합니다. 변수의 유형이 아닌 값에만 관심이 있으므로 추상이라고합니다. ==
연산자는 변수 값을 서로 비교하기 전에 동일한 유형 (유형 강제 변환)으로 변환을 수행하고 변환 된 피연산자가 같으면 true를 반환합니다. 연산자는 유형 변환을 수행해야하기 때문에===
연산자보다 약간 느린 경향이 있습니다.
이제 어떤 연산자를 사용해야하는지 이해하려면 먼저 유형 강제에 대해 조금 이해해야합니다. 두 가지 유형이 있습니다.
- 명시 적 강제: 내장 메소드를 사용하여 코드를 통해 명시 적으로 수행됩니다. 예 : 문자열
"42"
를 숫자로 변환하려면Number("42")
를 작성해야합니다. 이런 식으로 명시적인Number()
유형 변환 메소드를 사용하여 문자열을 숫자로 변환합니다. - 암시 적 강제: 언어에 의해 암묵적으로 수행됩니다. 일반적으로 연산자와 함께 두 가지 유형의 피연산자를 사용할 때 수행됩니다. 예 :
1 + ""
를 수행하는 경우. 직접 추가 할 수없는 하나의 숫자와 하나의 문자열이 있으므로 JavaScript 유형은 숫자를 추가 할 수있는 유일한 방법이므로 숫자를 문자열로 변환하고 문자열"1"
을 반환합니다.
23 == "23" // returns true
true + false == 1 // returns true
undefined == null // returns true
[] == 0 // returns true
JavaScript의 Strict Equality 연산자 (===
)
===
연산자 또는 ID 연산자는 엄격한 비교 연산자라고도합니다. 두 피연산자의 유형과 값이 모두 동일한 경우에만 true를 반환하기 때문에 strict라고합니다. 어떤 유형의 변환도 수행하지 않습니다. 따라서==
연산자보다 더 빠른 경향이 있습니다.
true === true // returns true
true === 1 // returns false
따라서==
또는===
연산자를 선택하는 결정에는 유형 강제가 필요합니다. 유형 강제에 익숙하지 않은 사람은 엄격한 항등 연산자를 사용해야합니다.