js에서 ==와 ===는 다르다
자꾸 까먹길래
관련링크
https://velog.io/@filoscoder/-%EC%99%80-%EC%9D%98-%EC%B0%A8%EC%9D%B4-oak1091tes
JavaScript에서 문자열 비교를 할 때 `==`와 `===` 연산자 모두 사용할 수 있습니다. 하지만 두 연산자는 중요한 차이점을 가지고 있어요:
- `==` (동등 연산자)는 값이 같은지 비교하기 전에, 두 비교 대상의 타입을 변환(형변환)해서 같은 타입으로 만든 후 값을 비교합니다. 이 때문에 예상치 못한 결과가 나올 수 있어요.
- `===` (일치 연산자)는 값과 타입이 모두 같은지를 비교합니다. 타입 변환 없이 직접 비교하기 때문에, 더 엄격한 비교가 가능해요.
### 문자열 비교에 권장되는 방법:
문자열을 비교할 때는 `===`을 사용하는 것이 좋습니다. 이 방법은 예상치 못한 타입 변환을 방지하고, 값과 타입이 모두 같은 경우에만 `true`를 반환하기 때문에 더 정확한 비교가 가능해요.
### 예시:
```javascript
const str1 = "Hello";
const str2 = "Hello";
const str3 = "hello";
console.log(str1 == str2); // true, 값이 같기 때문에
console.log(str1 === str2); // true, 값과 타입이 모두 같기 때문에
console.log(str1 == str3); // false, 값이 다르기 때문에
console.log(str1 === str3); // false, 값과 타입이 모두 다르기 때문에
```
이 예에서 `str1`과 `str2`는 값과 타입이 모두 같으므로, `==`와 `===` 모두 `true`를 반환합니다. 반면, `str1`과 `str3`은 값이 다르므로 두 연산자 모두 `false`를 반환합니다.
결론적으로, JavaScript에서 문자열을 포함한 모든 타입의 비교를 할 때는 가능한 `===`를 사용하는 것이 더 좋은 습관입니다. 이는 더 명확하고 예측 가능한 코드를 작성하는 데 도움이 됩니다.
댓글
댓글 쓰기