함수 기초
함수의 정의
<aside> 💡 function 함수이름 ( [매개변수 선언, …] ) {
실행할 코드를 작성하는 곳
}
</aside>
매개 변수 (parameter)
**// x부터 y까지의 누적합을 구해야 함**
// 1 ~ 10
var total = 0;
for (var i = 1; i <= 10; i++) {
total += i;
} // 반복해서 사용하기 번거롭다
// **📌 함수로 정의해서 필요할 때 호출해서 사용 !**
function calcRangeTotal(x, y) { // 파라미터 - 사용할 사람이 사용할 값 가져와
var total = 0;
for (var i = x; i <= y; i++) {
total += i;
}
return total; **// 최종적으로 얻고자 하는 값 return !**
}
var result1 = calcRangeTotal(1, 10); // 1 ~ 10 누적합
console.log(result1);
**// 매개변수의 기본값**
// 국가별 인사
function sayHello(language**='한국어'**) { **// 값을 안넣었을시 결과로 나올 파라미터를 지정해두기**
switch (language) {
case '한국어':
console.log('안녕하세요');
break;
case '영어':
console.log('hello');
break;
case '일본어':
console.log('곤니치와');
break;
case '중국어':
console.log('따쟈하오');
break;
default:
console.log('우가우가');
}
}
sayHello('일본어');
**sayHello(); // 파라미터 만들어 두고 안넣어주면 Undefined
// 📌 매개변수를 이용하여 함수의 출력값을 바꿀 수 있는 것 !
// 매개변수가 없는 함수**
function selectRandomPet() {
var pets = ['멍멍이', '야옹이', '병아리', '햄토리'];
var rn = Math.floor(Math.random() * pets.length); // pets만큼 랜덤으로 가져오기
return pets[rn]; **// 파라미터 없이 내부적으로 출력값을 조종할 수도 있다.**
}
var r1 = selectRandomPet();
var r2 = selectRandomPet();
console.log(r1);
console.log(r2);
반환문
: 유사한 강제 종료 : 반복문 , switch에서 사용 가능한 break;
**// return은 함수의 탈출문(종료문)**
// 두개의 파라미터를 갖는 덧셈 함수 정의
function add(n1, n2) {
return n1 + n2; // 덧셈 결과 반환
// return 강제 종료시켜 이 밑에 코드는 인식되지 않음 !
var x = 10;
}
**// 리턴이 없는 함수**
function multi(n1, n2) {
console.log(`${n1} x ${n2} = ${n1 * n2}`);
}
**// 반환값(return) : 함수 호출부로 함수의 결과값을 전달해주는 것**
add(10, 20); **// 결과 30 출력 안됨 - 30이란 결과는 존재하는데 로그로 찍어주지 않아서**
var result = add(10, 20); // add(10, 20) -> 30 로그로 찍어줘서 결과 출력
console.log(result)
var r1 = multi(3, 4); // 리턴이 없는 함수라 변수에 저장하면 안됨 = Undefined 됨
console.log(`r1 : ${r1}`);
multi(add(2, 3), add(5, 6)); // 정상 실행 !
**// 리턴이 없는 함수는 변수에 저장하지 말고
// 다른 함수의 매개값으로도 쓰면 안됨 !**
var r2 = add(multi(2, 3), multi(4, 5)); // add(undefined, undefined)가 됨
// 잘 돌아간 것을 확인하거나 후속 조치가 필요할 시
// 개발자 재량껏 선택적으로 return
**// return이 없는 함수에서 return을 break처럼 사용하기**
function callName(nickName) {
var prohibits = ['바보', '멍청이', '메롱'];
if (prohibits.include(nickName) {
console.log('나쁜 말은 금지에요 !');
**return; // break처럼 함수 실행을 강제 종료**
}
console.log(`${nickName}님 안녕하세요 :)`);
}
callName('멍청이');