
함수
1. 함수(Function), 메서드(Method)
- 프로그램에서 특정 동작을 수행하는 일정 코드 부분
- JavaScript에서 다루는 자료형 중 하나(string, num, boolean, function, object, undefined)
- 하나의 큰 프로그램을 여러 부분으로 나누어 작성 가능
- 같은 함수를 하나의 프로그램, 혹은 여러 프로그램에서 여러 차례 호출
- 프로그램의 일부분을 수정하기 용이함
- 코드의 재사용이 용이함
Input (Parameters) → Function → Output(Return value)
2. 함수의 선언
- 필요한 함수를 작성하는 것
- 함수를 어떻게 선언하느냐에 따라 "선언적 함수"와 "익명 함수"로 나뉠 수 있다.
① 선언적 함수
- 함수의 식별자를 통해 호출할 수 있는 함수
- 이러한 함수를 "익명 함수"와 상태되는 개념으로 "선언적 함수"라고 부른다.
- 선언적 함수는 문장이 아니라 명령이므로 {} 뒤에 세미콜론(:)을 찍지 않는다.
|
[선언적 함수의 예시] function hello () { document.writeln("Hello World!"); } |
② 익명 함수(anonymous function)
- 변수를 선언한 후 함수를 대입할 수 있는데 이를 익명 함수(anonymous function)라고 한다.
- 이 같은 경우네는 변수의 식별자가 함수의 식별자를 대신한다.
- 그래서 익명 함수의 경우에는 함수의 식별자를 생략할 수 있다.
- 익명 함수의 경우에는 뒤에 세미콜론(;)을 찍어야 한다.
|
[익명 함수의 예시] var hello = function () { document.writeln("Hello World!"); }; |
3. 함수의 호출
- 함수의 식별자 뒤에 함수 호출 연산자 ()를 붙여서 함수를 호출할 수 있다.
- 함수를 선언해놓은 곳으로 프로그램 실행 흐름이 이동하게 되고 함수의 본체에 있는 문장들을 실행한 후에 함수를 호출한 곳으로 되돌아온다.
- 선언적 함수 → 선언적 함수는 함수의 호출 순서가 함수를 선언하기 전인지 후인지 상관없이 호출 가능하다.
- 익명 함수 → 익명 함수는 변수가 선언되기 전에 호출하면 그 변수가 어떤 식별자인지 알 수 없으므로 오류!
- 왜냐하면 함수는 function이라는 자료형의 값으로, 프로그램 코드의 집합이라는 값으로 취급할 수 있다. 따라서 변수에 대입할 수도 있고 변수는 선언되어야 사용할 수 있다. 따라서 함수를 변수에 대입해놓은 경우 변수를 선언하는 문장이 실행되어야 그 변수를 통해 함수를 호출할 수 있기 때문이다.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width">
<meta charset="utf-8">
<title>11월 20일 배운 내용</title>
</head>
<body>
<pre><script>
// 선언적 함수이므로 함수가 선언되기 전에도 호출 가능
hello();
// 선언적 함수의 선언
function hello () {
document.writeln("Hello World!");
}
// 선언적 함수의 호출
hello();
// 익명 함수의 식별자이자 변수이므로 선언되기 전에는 호출할 수 없음
sayMerong(); // WARNING!
// 익명함수의 선언
var sayMerong = function () {
document.writeln("Merong!");
};
// 익명 함수가 선언된 후이므로 변수를 통해 함수를 호출할 수 있다.
sayMerong();
</script></pre>
</body>
</html>
