매번 코드를 작성하다보면, 변수의 제한 조건에 대한 코드를 항상 작성하게 된다.
function solution(num1,num2) {
var answer = 0;
if (0 <= num1 <= 100 && 0<= num2 <= 100){
answer = Math.floor(num1/num2);
}
return answer
}
코드를 저렇게 작성하는것이 직관적이라고 느낄 수 있지만, 한편으로는 많은 양의 코드와, 변수 조건들을 걸다보면 IF 문 안에 너무 많은 코드가 들어가게되고, 이는 가독성의 저하와, 변수 재사용성에 문제가 생기지 않을까 라는 생각이 들었다.
그래서 좀 다르게 코드를 짜보는 시도를 해보았다.
해당 변수 제한사항에 대해
function isvalidelement(element){
return 0 <= element && element <= 1000;
}
function isvalidarray(numbers){
const isvalidlength = numbers.length >= 1 && numbers.length <= 100;
const arevalidelements = numbers.every(isvalidelement);
return isvalidlength && arevalidelements;
}
function solution(numbers) {
//조건 불일치시
if(!isvalidarray(numbers)) {
throw new Error("잘못된 입력");
//return false; 대신 구문 출력 시도
}
이렇게 코드를 작성하고, 변수값을 잘못 입력했을 경우 return false; 대신
throw new Eroor("출력문")을 통해 어떤 에러인지 직관적으로 알 수 있게 시도해 보았다.
처음에는 코드가 좀 더 복잡해지는 것 같다고 생각이 들었지만, 습관을 들이다보면 복잡한 코드를 작성하는데 큰 장점을 보일 것이라 생각든다.