때로는 다음 예제와 유사한 코드를 우연히 발견했습니다 (이 함수의 기능은이 질문의 범위를 벗어납니다).
function doSomething(value) {
if (check1(value)) {
return -1;
}
else if (check2(value)) {
return value;
}
else {
return false;
}
}
보다시피 if
,, else if
및 else
명령문은 명령문과 함께 사용됩니다 return
. 이것은 평범한 관찰자에게는 상당히 직관적 인 것처럼 보이지만 소프트웨어 개발자의 관점에서 else
-s 를 삭제하고 다음 과 같이 코드를 단순화하는 것이 더 우아하다고 생각합니다 .
function doSomething(value) {
if (check1(value)) {
return -1;
}
if (check2(value)) {
return value;
}
return false;
}
이는 return
동일한 범위 내에서 명령문 다음에 오는 모든 것이 절대 실행되지 않으므로 위의 코드가 첫 번째 예제와 의미 적으로 동일하므로 의미가 있습니다.
위 중 어느 것이 좋은 코딩 방법에 더 적합합니까? 코드 가독성과 관련하여 두 방법 중 어느 하나의 단점이 있습니까?
편집 : 이 질문에 대한 중복 제안이 참조로 제공되었습니다. 나는 다른 질문에 제시된 것처럼 중복 진술을 피하는 것에 대해 묻지 않기 때문에 내 질문이 다른 주제를 다루고 있다고 생각합니다. 두 가지 질문 모두 약간 다른 방식으로 반복을 줄이려고합니다.
-1
숫자이고 false
부울이며 value
여기에 지정되어 있지 않으므로 모든 유형의 개체가 될 수 있습니다.
value
실제로 정수 라고 바랐다 . 그것이 무엇이든 될 수 있다면 훨씬 더 나빠집니다.
else
낮은 문제, 더 큰 문제는 분명히 함수의 API가 예측할 수 있도록하는 하나의 기능 중 2 개 데이터 형식을 반환하는 것입니다.