함수 기초



함수의 정의

<aside> 💡 function 함수이름 ( [매개변수 선언, …] ) {

     실행할 코드를 작성하는 곳

}

</aside>

매개 변수 (parameter)

  1. parameter.js
**// 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;

  1. return.js
**// 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('멍청이');