function 함수명([매개변수])
{
함수 본문
return 반환값;
}
함수명([인수]);
함수호출, 정의 예시
// 함수 호출
myFunc1();
// 함수 정의 (호이스팅 대상이므로 언제나 먼저 처리된다.)
function myFunc1(){
console.log('myFunc1 실행');
}
1) 일반 익명 함수
function([매개변수]){
함수 본문
return 반환값
}
2) 화살표 익명 함수
([매개변수])=>{
함수 본문
return 반환값
}
(1)일반 익명 함수
var 함수명 = function(){
} 함수명();
(2)화살표 익명 함수
var 함수명=(()=>{
})
함수명();
(1)일반 익명 함수
(function(){
})();
(2)화살표 익명 함수
(()=>{
})();
(1) 일반 익명 함수
문서객체.addEventListener('이벤트',function(){
});
(2)화살표 익명 함수
문서객체.addEventListener('이벤트'()=>{
});
1) 함수를 변수에 저장하기
var myFunc2=function(){
console.log('myFunc2 실행')
}();
실행 결과: myFunc2 실행
2) 자기 호출
(function(){
console.log('자기 호출 실행');
})();
실행결과: 자기 호출 실행
3) 이벤트 리스너로 등록하기
document.addEventListener('dblclick', function(){
console.log('이벤트 리스너 실행');
});
function myFunc3(a){
console.log(a);
}
myFunc3(10);
myFunc3('Hello World');
var a = true;
myFunc3(a);
var myFunc4 = (b)=>{
console.log(b);
}
myFunc4(100);
myFunc4('안녕하세요');
var b = false;
myFunc4(b);
((c)=>{
console.log(c);
})(1000);
function myFunc5(a){
if(a === undefined){ // a로 전달된 인수가 없으면 a = 0이다.
a = 0;
}
console.log(a);
}
myFunc5(10);
myFunc5();
function myFunc6(a = 0){
console.log(a);
}
myFunc6(10);
myFunc6();
function myFunc7(...a){
for(let i = 0; i < a.length; i++){
console.log(a[i]);
}
}
myFunc7(1, 2, 3, 4, 5);
function myFunc8(){
for(let i = 0; i < arguments.length; i++){
console.log(arguments[i]);
}
}
myFunc8(6, 7, 8, 9, 10);
function myMax(a, b, c){
if(isNaN(a) || isNaN(b) || isNaN(c)){ // a,b,c중 하나라도 숫자가 아니면(Not a number)
return;
}
let max = a;
if(b > max) max = b;
if(c > max) max = c;
return max;
}
function myMin(a, b, c){
if(isNaN(a) || isNaN(b) || isNaN(c)){
return;
}
let min = a;
if(b < min) min = b;
if(c < min) min = c;
return min;
}
function myMedian(a, b, c){
if(isNaN(a) || isNaN(b) || isNaN(c)){
return;
}
/*
let median;
if(a >= b){
if(b >= c) median = b; // a b c
else if(a <= c) median = a; // c a b
else median = c; // a c b
}
else if(a > c) median = a; // b a c
else if(b > c) median = c; // b c a
else median = b; // c b a
*/
let median;
if((b >= a && a >= c) || (c >= a && a >= b)){ // b a c, c a b
median = a;
} else if((a >= b && b >= c) || (c >= b && b >= a)) { // a b c, c b a
median = b;
} else {
median = c;
}
return median;
}
console.log(myMax(1, 2, 3));
console.log(myMin(1, 2, 3));
console.log(myMedian(1, 2, 3));
function myFunc9(a){
a();
}
myFunc9(function(){
console.log('함수 호출');
});
function myFunc10(a, b, callback){
callback(a, b);
}
myFunc10('Hello', 'World', function(x, y){
console.log(x, y);
});
/*
factorial 구하기
5! = 5*4! = 5*4*3*2*1
4! = 4*3! = 4*3*2*1
3! = 3*2! = 3*2*1
2! = 2*1! = 2*1
1! = 1
*/
function factorial(a){
if(a === 1){
return 1;
} else {
return a * factorial(a-1);
}
}
console.log(factorial(5));
1) 특정 시간 후에 한 번만 동작한다.
2) 동작
//1초기준 1000;
var timerId = setTimeout(함수, 시간(밀리초));
3) 동작 취소
clearTimeout(timerId);
1) 특정 시간 간격으로 반복해서 동작한다.
2) 동작
var timerId = setInterval(함수, 시간(밀리초));
3) 동작 취소
clearInterval(timerId);