익명 함수
function(){}
선언적 함수
function 함수(){}
매개변수와 리턴값
function 함수(매개변수) {
let output = 초기값
처리한다
return output
}
나머지 매개변수
function 함수이름(... 나머지 매개변수){}
배열로
들어옴function min(...items) {
let output = items[0]
for(const item of items) {
if(output > item){
output = item
}
}
return output
}
console.log(`${min(52, 273, 32, 103, 275, 24, 57}`)
나머지 매개변수, 일반 매개변수 조합하기
function 함수(매개변수, 매개변수, ... 나머지 매개변수){}
function min(first, ...rests) {
let output;
let items;
if (Array.isArray(first)) {
output = first[0];
items = first;
} else if (typeof first === 'number') {
output = first;
items = rests;
}
for (const item of items) {
if (output > item) {
output = item;
}
}
return output;
}
console.log(`${min([52, 273, 32, 103, 275, 24, 57])}`);
console.log(`${min(52, 273, 32, 103, 275, 24, 57)}`);
전개 연산자
함수(... 배열)
기본 매개변수
함수 이름(매개변수, 매개변수=기본값, 매개변수=기본값)
구버전 자바스크립트 매개변수 함수 구현하기
arguments
를 활용함arguements
는 매개변수와 관련된 여러 정보를 확인할 수 있고 배열과 비슷하게 사용할 수 있음function sample() {
console.log(arguments);
for (let i = 0; i < arguments.length; i++) {
console.log(`${i}번째 요소 : ${arguments[i]} `);
}
sample(1, 2, 3);
}
// 결과
// > Arguments(2)[1,2,callee : f, Symbol(Symbol.iterator):f]
//> 0번째 요소 :1
//> 1번째 요소 :2
//> 2번째 요소 :3
구버전 자바스크립트에서 전개연산자 구현하기
function sample(...items){
console.log(items)
}
// 전개 연산자 사용 여부
const array = [1,2,3,4]
console.log(sample.apply(null,array))
구버전 자바스크립트 기본 매개변수 구현하기
function earnings(wage, hours) {
wage = typeof wage != undefined ? wage : 8590;
hours = typeof hours != undefined ? hours : 52;
return wage * hours;
}
function earnings(wage, hours) {
wage = wage || 8590;
hours = hours || 52;
return wage * hours;
}
콜백 함수
const numbers = [273,52, 103, 32, 57]
numbers.forEach(function(value, index, array) {console.log`${index}번째 요소 : ${vlaue}`
})
let numbers = [273,52, 103, 32, 57]
numbers = numbers.map(function(value,index,array){
return value * value
})
numbers.forEach(console.log)
화살표 함수
numbers
.filter((value => value % 2 === 0 )
.map((value => value * value)
.forEach((value) =>{
console.log(value)
})
타이머 함수
let id
let count = 0
id = setInterval(()=>{
console.log(`1초마다 실행됩니다.(${count}번째)`)
count ++
}, 1* 1000)
setTimeout(()=>{
console.log('타이머를 종료합니다.')
clearInterval(id)
}, 5*1000)
즉시 호출 함수
(function(){})()
{
블록을 만든다!
}
즉시 호출 함수 문제 해결하기
(function(){
let pi = 3.141592
console.log(`파이 값은 ${pi}입니다.`)
})()
const Counter = (function counterIIFE() {
// 현재 counter 값을 저장하기 위한 변수
let current = 0;
return {
getCurrentValue: function () {
return current;
},
increaseValue: function () {
current = current + 1;
return current;
},
decreaseValue: function () {
current = current - 1;
return current;
},
};
})();
console.log(Counter.getCurrentValue()); // 0
console.log(Counter.increaseValue()); // 1
console.log(Counter.decreaseValue()); // 0
엄격모드
'use strict'
문장
문장
(function(){
'use strict'
문장
문장
})()
익명 함수와 선언적 함수의 차이
while 반복문은 조건을 중심으로
for 반복문은 횟수를 중심으로, 배열 중심으로
익명함수가 조금 더 안전하게함