Eveningstar

함수(function) 본문

Javascript

함수(function)

두루루루루 2017. 7. 3. 00:18

함수(function)


- 함수는 코드의 집합을 나타내는 자료형이다. 함수의 일반적 기능은 특정 작업을  수행하는 구문들의 집합을 정의하고 필요시에 호출하여 필요한 값 또는 수행 결과를 얻는 것이다.

- 함수는 객체이다. 다른 객체와 달리 호출이 가능하다.

- 함수는 변수나 객체, 배열등에 저장될수 있고, 다른 함수에 전달되는 인수로도 사용될 수 있으며, 함수의 반환값이 될 수 있다.

**(함수란, 자주 사용하는 처리를 하나로 묶은 작은 단위의 프로그램이다. 함수를 사용하고싶다면 호출이라는 과정을 거쳐야한다.)


함수사용의 장점

- 사용하고 싶을 때 어디서든 반복해서 호출할 수 있다.

- 매개변수를 변경하면 다른 데이터를 이용해서 동일한 가공처리를 할 수 있다.

- 처리를 하나로 모을 수 있다.


1. 함수 정의


함수를 정의하는 방법은 3가지가 있다.


  • 함수선언식(Function declaration)
  • 함수표현식(Function expression)
  • Function() 생성자 함수



1-1) 함수선언식


함수명 매개변수 목록 {함수 몸체}

함수가 호출되면 몸체 부분의 코드를 실행한다.

function square(number) {
  return number * number;
}


1-2) 함수표현식


함수에 숫자나 문자열처럼 변수에 저장하는 것이 가능하며, 함수 리터럴로 하나의 함수를 만들고, 그 안에 생성된 함수를 변수에 저장하는 것,


var 함수명 = function(필요한 매개변수) { 

구체적인 처리내용

};


var square = function(number) {
  return number * number;
};


기명함수 표현식과 익명 함수 표현식



// 기명 함수표현식(named function expression)
var foo = function multiply(a, b) {
  return a * b;
};
// 익명 함수표현식(anonymous function expression)
var bar = function(a, b) {
  return a * b;
};

console.log(foo(10, 5)); // 50
console.log(multiply(10, 5)); // Uncaught ReferenceError: multiply is not defined


함수표현식과 함수선언식에서 사용한 함수명은 함수 몸체에서 자신을 재귀적 호출하거나 자바스크립트 디버거가 해당 함수를 구분할 수 있는 식별자의 역할을 한다.


1-3) function() 생성자 함수


new Function(arg1, arg2, ... argN, functionBody)


익명함수

- 이름이 없는 함수, 이름이 없으므로 변수에 넣어 사용해야한다.


 var var_function  = function() {
  var output = prompt('숫자를 입력해주세요', '숫자');
  document.write(output);
};

https://jsfiddle.net/jywoo/uhxmsdvx/



선언적 함수

- 이미 브라우저가 내장하고 있는 함수 또는 다음방식으로 생성한 함수


function 함수 () {

}


선언적 함수의 재정의


함수의 이름이 같다면 나중에 정의된 함수가 실행된다.


function define1() { alert('함수 A');}
function define1() { alert('함수 B');}
define1();


var define1 = function() { alert('함수 A');} var define1 = function() { alert('함수 B');} define1();


변수를 같은 이름으로 선언하면 기존 변수를 덮어씌우듯이 뒤쪽의 함수가 덮어쓰게 됨.


익명함수와 선언적 함수의 차이점


다음의 코드 중 실행 오류가 없는 것은?


define1(); var define1 = function() { alert('함수 A');} var define1 = function() { alert('함수 B');}

define1(); var define1 = function() { alert('함수 A');} var define1 = function() { alert('함수 B');}

https://jsfiddle.net/jywoo/rehogj0m/


* 웹브라우저는 스크립트 내용을 한줄씩 읽기전에 선언적 함수부터 읽게된다. 



매개변수와 리턴값


매개변수와 리턴값을 가지는 함수는 필요에 의해 선택적으로 사용해야한다.


function 함수이름(매개변수, 매개변수){

//함수코드

reaturn 리턴값;

}



가변 인자 함수


가변 인자 함수는 매개변수의 개수가 변할 수 있는 함수이다.


function sunAll {
 // 출력
 alert(typeof (arguments) + ':' + arguments.lenght);
}
//함수호출
sumAll(1,2,3,4,5,6,7,8,9);

https://jsfiddle.net/jywoo/s7fd15bu/



'Javascript' 카테고리의 다른 글

객체2  (0) 2017.07.11
객체  (0) 2017.07.07
배열  (0) 2017.06.22
반복문  (0) 2017.06.19
조건문  (0) 2017.06.15
Comments