4일차 과제
Part 04. 함수
1. 함수
2. 함수 표현식
3. 화살표 함수 기본
4. 나머지 매개변수와 스프레드 문법
1. 함수
함수
과제 1 : "else" 는 정말 필요한가요?
아래 함수는 매개변수 age가 18보다 큰 경우 true를 반환합니다.
그 이외의 경우는 컨펌 대화상자를 통해 사용자에게 질문한 후, 해당 결과를 반환합니다.
function checkAge(age) {
if (age > 18) {
return true;
} else {
// ...
return confirm('보호자의 동의를 받으셨나요?');
}
}
해답
동일하게 작동함.
과제 2 : '?'나 '||'를 사용하여 함수 다시 작성하기
아래 함수는 매개변수 age가 18보다 큰 경우 true를 반환합니다.
그 이외의 경우는 컨펌 대화상자를 통해 사용자에게 질문한 후, 해당 결과를 반환합니다.
function checkAge(age) {
if (age > 18) {
return true;
} else {
return confirm('보호자의 동의를 받으셨나요?');
}
}
if문을 사용하지 않고 동일한 동작을 하는 함수를 한 줄에 작성해보세요.
아래 조건을 충족하는 해답 2개를 작성해야 합니다.
- 물음표 연산자 ?를 사용하여 본문을 작성
- OR 연산자 ||를 사용하여 본문을 작성
배운 것
물음표 연산자 ?
?(물음표) 앞 조건식을 연산하여 나온 값이,
true 일 경우 : 을 기준으로 왼쪽 값1 혹은 연산을 실행, false 일 경우 : 을 기준으로 오른쪽 값2 혹은 연산을 실행
논리 연산자 ||
a 또는 b의 어느 하나가 true인 경우 true // $a || $b
답안
function checkAge(age) {
return (age > 18) ? true : confirm('보호자의 동의를 받으셨나요?');
}
function checkAge(age) {
return (age > 18) || confirm('보호자의 동의를 받으셨나요?');
}
과제 3 : min(a,b) 함수 만들기
a와 b 중 작은 값을 반환해주는 함수, min(a,b)을 만들어보세요. 만든 함수는 아래와 같이 동작해야 합니다.
min(2, 5) == 2
min(3, -1) == -1
min(1, 1) == 1
답안
function get(a,b){
if (a >= b)
return (b);
}
해답
function min(a, b) {
if (a < b) {
return a;
} else {
return b;
}
}
내 답과 else가 있고 없고 차이인데, else{..} 를 생략해도 되나?
function min(a, b) {
return a < b ? a : b;
}
a == b 인 경우엔 a나 b 중 어떤 것을 반환해도 상관없다
과제 4 : pow(x,n) 함수 만들기
x의 n제곱을 반환해주는 함수, pow(x,n)를 만들어보세요. x의 n 제곱은 x를 n번 곱해서 만들 수 있습니다.
pow(3, 2) = 3 * 3 = 9
pow(3, 3) = 3 * 3 * 3 = 27
pow(1, 100) = 1 * 1 * ...* 1 = 1
프롬프트 대화상자를 띄워 사용자로부터 x와 n을 입력받고 pow(x,n)의 반환 값을 보여주는 코드를 작성해 보세요.
주의사항: n은 1 이상의 자연수이어야 합니다. 이외의 경우엔 자연수를 입력하라는 얼럿 창을 띄워주어야 합니다.
배운 것
제곱을 계산하는 함수 Math.power(a, b)
첫번째 인자는 밑수이고, 두번째 인자는 지수이다.
function pow(a,b) {
return Math.pow(a,b)
} // ?? 맞나?
해답
function pow(x, n) {
let result = x;
for (let i = 1; i < n; i++) { //(1)
result *= x;
}
return result;
}
let x = prompt("x?", '');
let n = prompt("n?", '');
if (n < 1) {
alert(`${n}은 양의 정수이어야 합니다.`);
} else {
alert( pow(x, n) );
}
(1)
for문에서 index 값이 1부터 시작되고, index값인 i가 n이 될때까지 for문은 실행됩니다.
i값이 n보다 크면 for문은 종료됩니다.
화살표 함수 기본
과제 5 : 화살표 함수로 변경하기
함수 표현식을 사용해 만든 아래 함수를 화살표 함수로 바꿔보세요.
function ask(question, yes, no) {
if (confirm(question)) yes()
else no();
}
ask(
"동의하십니까?",
function() { alert("동의하셨습니다."); },
function() { alert("취소 버튼을 누르셨습니다."); }
);
해답
function ask(question, yes, no) {
if (confirm(question)) yes()
else no();
}
ask(
"동의하십니까?",
() => alert("동의하셨습니다."),
() => alert("취소 버튼을 누르셨습니다.")
);
다른 예시
let age = prompt("나이를 알려주세요.", 18);
let welcome = (age < 18) ?
() => alert('안녕') :
() => alert("안녕하세요!");
welcome();
'TIL' 카테고리의 다른 글
2023.03.10_5일차 과제 (0) | 2023.03.10 |
---|---|
2023.03.09_4일차 정리 (0) | 2023.03.10 |
2023.03.08_3일차 과제 (0) | 2023.03.08 |
2023.03.07_2일차 과제 (0) | 2023.03.07 |
2023.03.06_1일차 과제 (0) | 2023.03.06 |