[6] 함수

Dana's Log·2022년 6월 4일
0

JavaScript

목록 보기
7/13

function

함수는 어떤 일의 단위입니다. 또한 자주쓰는 내용들을 묶어서 함수로 만들어두면 필요할때 언제든 불러다 쓸 수 있습니다.

function 함수이름 (매개변수) {
    내용입력
    return 반환
}
  • 매개변수: 함수에 전달해야되는 내용이 있을때, 이 함수가 실행될때 알아야되는 내용이 있을 때 매개변수를 통해 전달한다
  • return: 반환값, 함수 완료 후, 반환되야하는 값이 있을 때 사용한다
  • method: 메서드, 함수와 같은 뜻이다
  • 익명함수 Anonymous function : 이름이 없는 함수. function (y) {console.log(y)}. 함수를 변수에 넣어줄때, 일시적으로 쓰이고 말 함수들에 대해선 익명함수로 만들어준다
  • 람다식 함수: => 를 사용하여 함수를 정의하는 경우이다.([8]ES6 최신 문법 참고)
    let arrowFunc = (y) => { console.log(y); }
    function arrowFunc(){let y; console.log(y)}
  • 콜백함수 : 다른 함수의 매개변수로 전달된 함수.

예시

button.addEventListenr("click",setCount)
// 버튼에 클릭 이벤트가 발생했을때 setCount함수를 콜을 한다
function setCount() {
    count++
}

콜백은 말그대로 부른다는 뜻이다. 주로 어떤 함수에 매개변수로 들어가 어떤 특정한 조건이 되었을때만 호출이된다 (클릭이벤트나 타이머이벤트 등등)

//"안녕 내 이름은 제시카야"라는 문장을 프린트하는 함수 'greet’
function greet(){
  console.log("안녕 내 이름은 제시카야");
}

//이름을 매개변수로 전달받아 다양한 이름을 프린트 할 수 있는 함수
function greet1(name){
  console.log("안녕 내 이름은",name,"야");
}

//매개변수로 전달받은 이름을 반환하는 함수
funciton greet2(name){
    console.log("안녕 내 이름은",name,"야")
    return name
}

this

let age = 20
var obj = {
 age:12,
 foo: function () {
   console.log(this.age)
  },
};
obj.foo()

함수 문제

// meetAt 매개변수에 따라 출력 다르게
// meetAt(2022) --> 2022년
// meetAt(2032,3) --> 2032년 3월
// meetAt(1987,10,28) --> 1987/10/28
function meetAt(year, month, date) {
  let todayYear = year;
  let todayMonth = month;
  let todayDate = date;
  // if(year) 부터 하면은
  // 위에서부터 검사해서 year이 참이므로 다음 if로 안넘어감. 고로 순서 반대
  if (todayDate) { // if(todayYear && todayMonth && todayDate) 와 같음. date가 있다는 것은 자동으로 year,month도 있다는 것이므로 생략가능. 
    // `` 백틱 : 문자열 안에 동적인 값을 넣어주고싶을 때 ${동적인값}정적인문장
    return `${todayYear}/${todayMonth}/${todayDate}`;
  }
  if (todayMonth) {
    return `${todayYear}${todayMonth}`;
  }
  if (todayYear) {
    return `${todayYear}`;
  }

}

console.log(meetAt(2022,1,7)) // 2022/1/7


// 최솟값 리턴하는 함수
function findSmallestElement(arr) {
	let result = arr[0];
	if (arr.length === 0 ) {
		return 0;
	}
  for (let i = 1;i < arr.length; i++){
		if(result > arr[i]){
			result = arr[i];
		}
	}
	return result;
}


let smallestNumber = findSmallestElement([100,200,3,0,2,1])
console.log(smallestNumber) // 0


// 돈을 매개변수로 받으면 몇개의 지폐와 동전이 필요한지 최소 개수를 계산해주는 함수
let unit = [50000,10000,5000,1000,500,100]
function changeCalculate(money) {
  for(let i=0;i<unit.length;i++){
      // num = 몫    
      // Math.floor() : 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환 예) Math.floor(-3.6) -> -4
      let num = Math.floor(money / unit[i])
      //console.log(unit[i]+"X"+num)
      console.log(`${unit[i]X${num}`);
      money = money - (unit[i]*num)
  }
}

changeCalculate(12300)
profile
다나로그

0개의 댓글