조건부 연산자 '?'
condition ? value1 : value2;
condition 만족 시 → value1 반환 / 불만족 → value2 반환
- 다중 사용
condition ? value2 :
value 3;
condition ? value1 :
- 조건에 따라 반환값을 달리하려는 목적으로 만들어짐
- 간단한 줄 아니고서는 if 사용이 나음
- 예시
let result;
if (a + b < 4) {
result = '미만';
} else {
result = '이상';
}
//
let result = (a + b < 4) ? '미만' : '이상';
// 두 개의 코드는 같은 결과
or 연산자 '||'
하나라도 true = true
- 피연산자가 boolean 아닌 경우 (원래값 반환)
첫 번째 truthy 반환 / (하나도 없다면) 마지막 피연산자
- 예시
if (isNaN(age) || age<0) {명령문};
// age가 숫자가 아니거나 or 음수 일 때, 실행
문제
아래 함수는 매개변수 age가 18보다 큰 경우 true를 반환합니다.
그 이외의 경우는 컨펌 대화상자를 통해 사용자에게 질문한 후, 해당 결과를 반환합니다.
function checkAge(age) {
if (age > 18) {
return true;
} else {
return confirm('보호자의 동의를 받으셨나요?');
}
}
if문을 사용하지 않고 동일한 동작을 하는 함수를 한 줄에 작성해보세요.
아래 조건을 충족하는 해답 2개를 작성해야 합니다.
- 물음표 연산자 ?를 사용하여 본문을 작성
- OR 연산자 ||를 사용하여 본문을 작성
나의 풀이
function checkAge(age) {
age > 18 ? return true : return confirm("보호자의 동의 가능?");
}
1번: 오류
2번: 풀지 못했다 ㅠㅠ
해답
1. 물음표 연산자 '?'를 사용한 해답:
function checkAge(age) {
return (age > 18) ? true : confirm('보호자의 동의를 받으셨나요?');
}
- return을 앞으로 뺄 수 있다
중복하지 말고 앞으로 빼서 간략하게 작성할 것
2. OR 연산자 ||를 사용한 해답
function checkAge(age) {
return (age > 18) || confirm('보호자의 동의를 받으셨나요?');
}
(age > 18을 감싸고 있는 괄호는 가독성을 높이기 위해 삽입. 괄호가 없어도 동일하게 동작)
return (age > 18) || confirm('보호자의 동의를 받으셨나요?')
에서age > 18
이 false라면 무조건 '보호자의 동의를 받으셨나요?' 가 출력되므로 이렇게 써도 된다.
참고
https://ko.javascript.info/function-basics
'Programming > Client' 카테고리의 다른 글
[Javascript] 문자열의 첫글자만 대문자로 변경 후, 출력 (0) | 2022.03.16 |
---|---|
[Javascript] 유효한 숫자를 입력할 때까지 반복하는 함수 (0) | 2022.03.15 |
[Javascript] 메서드 호출 체이닝 구조 만들기 (0) | 2022.03.08 |
[Javascript] 거듭제곱 함수 구현 (0) | 2022.03.02 |
[Javascript] 사용자가 유효한 값을 입력할 때까지 프롬프트 창 띄우기 (0) | 2022.02.28 |