웹프로그래밍 무작정따라하기/JS
[ es6 ] if문 중첩 / 렛츠기릿 자바스크립트
RIMD
2022. 7. 13. 10:06
인프런에서 렛츠기릿 자바스크립트가 무료 강의로 오픈되면서
자바스크립트 기초를 다시 다져야겠다는 생각으로 강의를 들었는데
기초부터 잘 알려주는 강의입니다.
평소 자바스크립트하더라도 헷갈렸던 부분들이 많이 생기기 마련인데
왜 이렇게 작동되는지에 대한 원리 또는 코드 작성 시, 스킬등 꿀팁들을 다양하게
알려주셔서 궁금증 해소가 많이 되는 강좌였고, 계속 진행예정입니다.
4강. if문 중첩 줄이기
const onClickNumber = ( event ) => {
// 연산자가 비어 있지 않고, numTwo의 값이 없다면
if (operator) { // 비어있지 않다
if(!numTwo) {
$result.value = '';
}
numTwo += evnet.target.textContent;
} else { // 비어 있다
numOne += evnet.target.textContent;
}
$result.value += evnet.target.textContent;
}
if문이 중첩이 많이 되어 있으면 코드 맥락을 확인하기가 어려워지며, 언제 실행되는 지 헷갈리는 부분도 많아진다.
처음부터 if문이 중첩이 되지 않고 코드를 작성하도록 하는 것이 좋은 방향입니다.

실제로 대부분의 if문은 순서도를 살짝 바꾸면 중첩을 피할 수 있습니다.
if중첩문 피하는 방법
1. if문 다음에 나오는 공통된 절차를 각 분기점 내부에 넣는다.
2. 분기점에서 짧은 절차부터 실행하게 if문을 작성한다.
3. 짧은 절차가 끝나면 return(함수 내부의 경우)이나 break(for문 내부의 경우)로 중단한다.
-> 3번을 실행하게 되면 else를 제거하게 됨으로 중첩 하나가 또 줄어드는 결과를 가져옴으로서
가독성이 더 좋아진다.
const onClickNumber = ( event ) => {
if (!operator) { // 비어있다
numOne += evnet.target.textContent;
$result.value += evnet.target.textContent;
return; // 함수 중단
}
if(!numTwo) { // 비어있지 않다
$result.value = '';
}
numTwo += evnet.target.textContent;
$result.value += evnet.target.textContent;
}