몸과 마음이 건전한 SW 개발자

자바스크립트 [조건문 리펙토링] 본문

개발 언어 입문/자바스크립트 문법

자바스크립트 [조건문 리펙토링]

스위태니 2024. 4. 8. 22:09

기본 조건문

let answer = 0;
for (let i = 1; i < 11; i++) {
    if (answer) {
        answer += i;
    } else {
        answer = 1;
    };
};
console.log(answer); // 55

리펙토링

let newAnswer = 0;
for (let j = 1; j < 11; j++) {
    newAnswer = newAnswer + j || 1; 
};
console.log(newAnswer); // 55

설명

  • 기존 조건문은 if 와 else로 나눠서 answer값이 존재하면 i를 더해주고 아니면 answer는 1이된다.
  • 총 길이는 7줄이다.
  • 리펙토링을 한 경우 newAnswer가 존재할 경우 j를 더해주고 아니면 위와 동일하게 1이 된다.
  • 총 길이는 3줄이다.

결론

  • 위와 같은 형태로 리펙토링을 진행하게 되면 7줄을 3줄로 줄여주는 효과를 본다.
  • 즉, 2배 이상의 효과를 낼 것으로 기대한다.
  • 하지만 이것은 어디까지나 answer 값이 존재 할 경우와 존재하지 않을 경우만 비교해주므로 적절한 응용이 요구된다.

예시

let test = 1;
test = test + 1 || test || 3;
console.log(test) // 2
test = test + 1 && test && 3;
console.log(test); // 3