함수란?
데이터를 저장할 때에는 변수를 선언하여 저장했습니다. 변수에는 데이터만 저장할 수 있고, 코드는 저장할 수 없습니다. 하지만 함수를 사용하면 코드를 메모리에 저장했다가 필요할 때마다 호출하여 사용할 수 있습니다.
함수를 사용하여 코드를 저장한 것을 함수 정의문이라고 합니다. 변수를 선언할 때 var키워드를 사용한 것처럼 함수에서는 function 키워드를 사용해 변수를 선언합니다.
//기본형 function 함수명() {
코드;
}
다음과 같이 익명 함수(함수명이 없는 함수)를 선언하고 변수에 참조해줘도 됩니다.
//기본형 참조 변수 = function(){
코드;
}
함수는 메모리에 할당되어 대기하고 있다가 함수가 호출되면 실행됩니다.
//함수 호출 기본형 함수명();
참조 변수();
일반 함수 정의 방식과 익명 함수 선언 참조 방식의 차이점
일반 함수 정의는 함수 호출 시 호이스팅 기술을 지원합니다. 그러나 익명 함수 선언 참조 방식은 호이스팅을 지원하지 않습니다. 호이스팅을 적용하면 함수 정의문보다 호출문이 먼저 나와도 함수 정의문을 끌어올려 함수를 호출합니다.
예제)
매개변수가 있는 함수
기본 함수는 함수 안에 있는 코드를 시행할 때 단순히 함수명으로 호출해서 코드를 실행했습니다. 즉, 함수를 호출할 때 값을 전달할 수 없었습니다. 하지만 매개변수가 있는 함수는 함수를 호출할 때 전달하고자 하는 값을 입력하여 호출할 수 있습니다. 이렇게 전달된 값은 매개변수가 받아 함수 정의문에서 사용할 수 있습니다.
//기본형 function 함수명 (매개변수1, 매개변수2, ..., 매개변수 n) {
코드;
} 함수명(데이터1, 데이터2, ..., 데이터 n);
함수를 호출할 때 데이터1은 매개변수1에 저장되고 데이터2는 매개변수2에 저장됩니다.
예제)
홍당무는 name에, 서울은 area에 저장됩니다. 마찬가지로 깍두기는 name에, 부산은 area에 저장됩니다.
매개변수 없이 함수에 전달된 값 받아오기
함수에서 arguments를 사용하면 매개변수를 사용하는 것처럼 함수 호출문의 값을 받아올 수 있습니다. 함수 정의문의 매개변수가 없는 상태에서 데이터를 전달하여 함수를 호출하면 그 값은 개별에 저장됩니다.
//기본형 function 함수명(){
arguments
} 함수명(데이터1, 데이터2, 데이터3);
arguments[0] = 데이터1 , arguments[1] = 데이터2, arguments[2] = 데이터3 이 저장됩니다.

'[Javascript] 자바스크립트' 카테고리의 다른 글
[Javascript] 자바스크립트 프로토타입, 내장함수 사용법 (0) | 2024.11.14 |
---|---|
[Javascript] 자바스크립트 함수스코프, 전역함수, 지역함수, 객체 생성자 함수 (0) | 2024.11.12 |
[Javascript] 자바스크립트브라우저 객체(screen, location, history, navigator) (2) | 2024.11.06 |
[Javascript] 자바스크립트 내장 객체(날짜, 수학, 배열 , 문자열) 내장함수 (0) | 2024.11.05 |
[Javascript] 자바스크립트 객체란, 객체의 종류(내장, 브라우저, 문서 객체) (2) | 2024.11.01 |