함수(function) : 실행문을 저장한 프로그램
함수 선언 : function 함수명() { // 실행문; }
함수명( ); // 함수 호출
--------------------------------------------------
함수의 기능(역할)
1. 반복 수행
2. 매개변수 전달
3. 프로그램이 짧아진다
4. 재활용이 가능
5. 수정, 삭제, 유지보수가 쉽다
--------------------------------------------------
함수 종류
1. 사용자 정의 함수 : 사용자가 필요에 의해서 만든 함수
title(); // 사용자 정의 함수 호출
function title() {
console.log("---------");
}
2. 내장 함수 : 자바스크립트에서 제공하는 함수
let str="abcdefg"; // 문자열도 배열
console.log( str.replace("c", " kbs ") ); // ab kbs defg
3. 선언적 함수 : 함수 이름이 지정된 함수
function 함수명( ) { // 실행문; }
4. 익명함수 : 함수에 이름이 없다. (변수에 함수를 저장(대입)하여 사용)
let out=function() {
console.log("익명함수");
}
console.log(out);
5. 즉시 실행 함수
( function title() {
console.log("---------");
}) ( );
6. Return 함수 : 결과값을 돌려주는 함수
console.log( func() );
function func() {
return ( 10 + 20 );
}
-------------------------------
let result = func();
console.log( result );
function func() {
return ( 10 + 20 );
}
7. 전달 인수가 있는 함수
let a=10, b=20, kbs;
kbs = func(a, b); // (괄호 안에 있는 a, b가 전달 인수)
console.log(kbs); // 200(결과값)
function func(x, y) { // 전달 받은 x, y가 매개변수
return ( x * y );
}
-------------------------------------------------------
let kbs = func( 10, 20 );
console.log( kbs ); // 30 결과값
// ********* 매개변수와 Return이 있는 함수 **********
function func(a, b) {
console.log( a, b ); // 10, 20 출력값
return (a + b);
}
// ********** 매개변수와 Return이 있는 함수 **********
func( 100 ) // a만 전달 받고 b는 undefined
let sbs = func( 100 );
console.log( sbs ); // return을 못 받음 NaN
==========================================================
호출되는 공통 함수 ----------------------------------
function func( x, y=50 ) { -
return x+y; // 숫자+문자 = 연결 -
} -
--------------------------------------------------------
let a=10, b='a';
let kbs=func( a, b);
console.log( "타입이 다르게 전달되면 (kbs) : " + kbs ); // 10a (연결된 값을 돌려받음)
------------------------------------------------------------
let sbs = func( 10, 20 )
console.log( "딱 맞게 전달값 (sbs) : " + sbs ); // 30 (전달된 값을 계산해서 돌려받음)
------------------------------------------------------------
let ebs = func( 10 )
console.log( "전달값이 적을 때를 대비해서 값 지정 (ebs) : " + ebs );
// 60 (a는 전달되지만 b는 전달된 값이 없어서 기본값 y=50이 대신 계산하여 60 돌려받음)
------------------------------------------------------------
let mbc = func( 10, 20, 30 )
console.log( "전달값이 많을 때 (mbc) : " + mbc ); // 30 (전달하고 남은건 무시)
============================================================
8. 화살표 함수 : function 대신에 화살표를 쓴다 (익명 함수만 있다.)
let kbs=function () {
console.log( "kbs : 익명함수에서 출력 ");
}
kbs(); // kbs()는 kbs에 들어있는 함수를 호출한 것과 같다
------------------------------------------------------------
let sbs=()=> {
console.log("sbs : 화살표 함수에서 출력");
}
sbs();
------------------------------------------------------------
let ebs=()=>console.log("ebs : 화살표함수에서 {중괄호 없이} 바로 출력");
ebs();
------------------------------------------------------------
let kbs=(a, b)=> console.log( a + b ); // 매개변수가 있는 화살표 함수
kbs(10, 20);
let sbs=function(a, b) { console.log( a + b); }
sbs(10, 20);
let ebs=(a, b)=> { return a+b; } // Return값이 있는 화살표 함수
ebs(10, 20); // 출력이 안됨
console.log( ebs(10, 20) ); // 출력이 됨 30
------------------------------------------------------------
// 1~100까지 합을 화살표 함수로 표현 하기
let kbs=()=> {
let sum=0;
for(i=1; i<=100; i++)
sum += i;
console.log( "kbs : 화살표 함수로 1~100까지 합 : " + sum );
}
kbs();
------------------------------------------------------------
// 1~100까지 합을 화살표 함수로 구하고 Return으로 표현 하기
let sbs=()=> {
let sum=0;
for(i=1; i<=100; i++)
sum += i;
return 'sbs : return으로 돌려받아 출력 : ' + sum;
}
console.log( sbs() );
------------------------------------------------------------
let ebs=(a, b)=> {
let sum=0;
for(i=a; i<=b; i++)
sum += i;
return 'ebs : 1과 100을 전달인수해서 합 결과를 return으로 돌려받아 출력 : ' + sum;
}
console.log( ebs(1, 100) );
------------------------------------------------------------
let mbc=(a, b)=>{
let sum=0;
for(i=a; i<=b; i++)
sum += i;
return 'mbc : 1과 100을 전달인수해서 합 결과를 return으로 돌려받아 출력 : ' + sum;
}
let total = mbc(1, 100);
console.log( total )
------------------------------------------------------------