함수는 어떤 일의 단위입니다. 또한 자주쓰는 내용들을 묶어서 함수로 만들어두면 필요할때 언제든 불러다 쓸 수 있습니다.
function 함수이름 (매개변수) {
내용입력
return 반환
}
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
}
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)