`switch` 문을 사용하여 함수 내부에서 유효성 검사를 수행하면 코드가 더 읽기 쉽고 관리하기 쉬울 수 있습니다. `switch` 문은 명확하고 구조화된 방식으로 여러 조건을 처리할 수 있기 때문에, 여러 유형의 입력 값이나 다양한 유효성 검사 규칙을 처리하는 데 유용합니다.
다음은 `switch` 문을 사용하여 함수 내부에서 유효성 검사를 수행하는 예제입니다. 이 예제에서는 다양한 입력 필드에 대해 유효성을 검사하는 함수를 정의합니다.
### 예제: 다양한 입력 필드에 대한 유효성 검사
```javascript
function validateField(fieldName, value) {
switch (fieldName) {
case 'username':
if (typeof value !== 'string' || value.trim().length < 3) {
return 'Username must be a string with at least 3 characters';
}
return 'Valid username';
case 'email':
// 간단한 이메일 유효성 검사 정규식
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailPattern.test(value)) {
return 'Invalid email address';
}
return 'Valid email';
case 'password':
if (typeof value !== 'string' || value.length < 8) {
return 'Password must be at least 8 characters long';
}
return 'Valid password';
case 'age':
if (typeof value !== 'number' || value <= 0) {
return 'Age must be a positive number';
}
return 'Valid age';
default:
return 'Unknown field';
}
}
// 테스트
console.log(validateField('username', 'js')); // Username must be a string with at least 3 characters
console.log(validateField('username', 'javascript')); // Valid username
console.log(validateField('email', 'test@test.com')); // Valid email
console.log(validateField('email', 'test.com')); // Invalid email address
console.log(validateField('password', '12345')); // Password must be at least 8 characters long
console.log(validateField('password', 'password123')); // Valid password
console.log(validateField('age', 25)); // Valid age
console.log(validateField('age', -5)); // Age must be a positive number
console.log(validateField('unknown', 'test')); // Unknown field
```
### 장점
- **가독성**: `switch` 문을 사용하면 각 조건이 명확하게 구분되어 코드가 더 읽기 쉽습니다.
- **유지보수**: 새로운 필드나 유효성 검사를 추가하기가 더 쉽습니다. `switch` 문에 새로운 케이스를 추가하기만 하면 됩니다.
- **구조화**: 각 유효성 검사 로직이 별도의 `case` 블록에 위치하므로, 코드가 더 구조화되고 정리되어 보입니다.
### 단점
- **제한적인 유연성**: `switch` 문은 정적 값에 대해서만 작동합니다. 동적 조건이나 복잡한 로직을 처리하는 데는 다소 불편할 수 있습니다.
- **반복적인 코드**: 유효성 검사 로직이 길어지면 각 `case` 블록 안에 중복 코드가 발생할 수 있습니다.
`switch` 문을 사용하여 유효성 검사를 구현하면 이러한 장점과 단점을 고려하여 적절한 경우에 사용하면 됩니다. 각 상황에 맞는 적절한 방법을 선택하는 것이 중요합니다.
'javascript' 카테고리의 다른 글
함수 표현식, 선언문 장단점과 적합한 경우 (0) | 2024.05.18 |
---|---|
전역 변수와 지역 변수가 같아도 오류 x (0) | 2024.05.18 |
switch 같은 결과일때 (0) | 2024.05.18 |
&&과 || 우선순위 + 각각 반환 되는 것 &&은 마지막 ||은 첫번째 (0) | 2024.05.17 |
배열 뒤집는 법 (0) | 2024.05.17 |