함수란?
코드의 집합체로서 같은 코드가 반복되는 부분이 있으면 그 부분만 따로 떼어네어 함수로 정의한다.
이를 재활용 함으로써
1. 긴 코드를 짧게 줄일 수 있고,
2. 함수만 수정하면 함수를 호출한 여러군데의 코드를 동시에 수정할 수 있다.
3. 함수는 가독성을 높어주며,
4, 코드를 재사용 함으로써 코딩 시간을 단축 시켜준다.
5. 자바스크립트에서 함수는 일급객체(first-class)이다
* 함수 정의
함수 정의시 1. 실행코드 , 2, 리턴값, 3, 매개변수 의 조합으로 이루어져 있다.
리턴값은 한개만 정의할 수 있다.
매개변수는 필요에 따라 갯수 상관없이 정의 할 수 있다.
1. 실행 코드만 정의 function 함수명 (){ // 실행 코드 } 2. 실행코드, 리턴값 정의 function 함수명 (){ // 실행 코드 return 리턴값; } 3. 실행코드,매개변수 정의 function 함수명 (매개변수,,,){ // 실행 코드 } 4. 실행코드, 리턴값, 매개변수 정의 function 함수명 (매개변수,,,){ // 실행 코드 return 리턴값; }
* 함수 선언 방법 3가지
1. 선언적 함수
2. 익명 함수
3. 함수 생성자를 이용한 함수
// 1. 선언적 함수 와 재정의 > 함수를 선언한다. function funcA (){ document.write('funcA
'); } funcA(); // 2. 익명 함수 와 재정의 > 변수에 함수를 대입한다 var funcB = function (){ document.write('funcC
'); } funcB(); // 3. 선언적 함수와 익명 함수가 동시에 정의되어 있을땐 절차적 순서에 상관없이 // 1. 선언적 함수 2. 익명 함수 순으로 정의된다 var funcC = function (){ document.write("Ex3-1
") } // 익명 함수 정의가 나중에 정의 function funcC (){ document.write('Ex3-2
'); } // 선언적 함수 정의가 먼저 정의 funcC (); // 함수 생성자를 이용한 선언 var funcD = new Function('param','document.write("Ex4
")'); funcD();
* 매개변수
함수 호출시 함수 실행 코드로 전달하는 값이다.
자료형이나 갯수에는 상관이 없다.
// 매개변수1과 매개변수2를 받는다 function funcParam (param1, param2){ document.write("매개변수1: " + param1 + " / 매개변수2: " + param2 + "
"); } funcParam(10, "대한민국"); // 매개변수1에 10을 매개변수2에 '대한민국'을 전달한다
* 리턴값
함수 실행 코드를 모두 실행하고 함수 종료시 함수 호출한 곳으로 결과값을 반환하는 값이다.
자료형은 상관이 없다.
갯수는 함수 종료시 하나만 반환할 수 있다.
(리턴값이 없이 return; 을 하면 함수 호출한 곳으로 돌아간다.)
function funcReturn(){ var a = 1 + 2; return a; // a를 리턴한다 } var result = funcReturn(); // 함수에서 리턴된 리턴값을 변수 result 에 대입한다 document.write('리턴값: ' + result); // 리턴값을 확인한다.
* 내부함수
함수 안에 함수를 정의하는것을 말한다.
내부함수는 함수 외부에서는 사용하지 못한다.
함수 외부에 동일 함수명의 다른 함수가 있어도 함수 내에서는 내부함수가 우선 호출된다.
function a (){ // 내부함수 선언 function b (){ // 실행 코드 } // 실행 코드 }
* 자기 호출 함수
함수 선언 후 다른 곳에서 사용못하게 함수를 생성하자마자 호출하는 함수
(function () { // 실행 코드 }) ();
* 콜백 함수
자바스크립트에서는 함수도 자료형에 속한다.
함수 매개변수로 함수를 전달하는 것을 콜백함수하고 한다.
var callback = function (){ document.write("this is callback
"); } function FuncA (callbackFunc) { callbackFunc(); } FuncA(callback);
'프로그래밍 > 자바스크립트' 카테고리의 다른 글
자바스크립트 객체(object) (0) | 2017.03.11 |
---|---|
자바스크립트 내장 함수 (0) | 2017.03.10 |
자바스크립트 반복문 (while문/do while문/for문) (0) | 2017.03.08 |
배열 선언/사용/추가/삭제 (0) | 2017.03.07 |
자바스크립트(javascript)에서 alert(경고창/메시지박스) 사용 예 (0) | 2017.03.03 |
댓글