eqeq 줄이기

ljjunh·2024년 10월 30일

clean-code-javascript

목록 보기
8/38
post-thumbnail

eqeq는 자바스크립트에서 동등 연산자 ==다.

자바스크립트에서 동등 비교는 중요한 개념이다. 특히 ==(동등 연산자 eqeq)와 ===(일치 연산자eqeqeq)의 차이를 이해하는 것이 중요하다.

1. eqeq의 위험성 ⚠️

동등 연산자는 비교 전에 자동으로 타입을 변환한다. 이런 암묵적 형변환은 예상치 못한 결과를 가져올 수 있다.

// 암묵적 형변환의 예
'1' == 1    // true (문자가 숫자로 변환)
1 == true   // true (boolean이 숫자로 변환)
null == undefined  // true (둘 다 falsy 값으로 취급)

이러한 암묵적 형변환은 코드의 예측 가능성을 떨어뜨린다.

2. 실제 개발에서 마주치는 문제 🚨

DOM 요소의 값을 비교할 때 자주 발생하는 상황을 보자

const ticketNum = $('#ticketNum')
ticketNum.value  // '0' (문자열)
ticketNum.value === 0  // false (타입이 다름)

2.1 잘못된 해결 방법 ❌

ticketNum.value == 0  // true
// "어차피 동작하니까..."라는 위험한 생각

느슨한 동등연산자를 오히려 역이용하는 것이다. “어차피 동작하니까”. 하지만 이건 팀원 관점에서 봤을 때 좋지 않다. 예상치 못한 버그를 불러올 수 있고 코드의 의도를 파악하기 어렵다.

2.2 올바른 해결 방법 ✅

Number(ticketNum.value) === 0  // true
// 명시적 형변환 + 엄격한 비교

형변환을 명시적으로 하고 엄격한 동등연산자를 사용하는 것이다.

마무리 📝

"나는 JavaScript를 잘 다루니까 이정도는 괜찮아"라는 생각은 위험하다. 좋은 팀원이 되기 위해서는 항상 명확하고 안전한 방식을 선택해야 한다. ESLint의 eqeqeq 규칙을 설정해서 사용하면 이런 실수를 방지할 수 있다.

== 연산자 사용에 대해 관대한 개발자도 있고 엄격한 개발자도 있지만, 결국 팀 프로젝트에서는 가장 안전하고 명확한 방식을 따르는 것이 맞다.

profile
Hello

0개의 댓글