function 선언(declaration)은 지정된 매개변수(parameter)로 함수를 정의합니다.
Function
생성자(constructor) 및 function 식(expression)
을 사용해서 정의할 수도 있습니다.
구문
function name([param,[, param,[..., param]]]) { [statements] }
name
- 함수 이름.
param
- 함수에 건네지는 인수(argument)명. 함수는 255개까지 인수를 가질 수 있습니다.
statements
- 함수의 몸통(body)을 구성하는 문(statement).
설명
function 선언으로 생성된 함수는 Function
객체이고 Function
객체의 모든 속성(property), 메서드 및 behavior를 갖습니다. Function 객체에 관한 더 자세한 정보는 Function
참조.
함수는 또한 식(function 식
참조)을 사용하여 생성될 수 있습니다.
기본(default)으로, 함수는 undefined
를 반환합니다. 다른 값을 반환하기 위해서는, 함수는 반환값을 지정하는 return
문이 있어야 합니다.
조건부로 생성되는 함수
함수는 조건부로 선언될 수 있습니다. 즉 function 문은 if
문 내에 중첩될 수 있습니다. Mozilla 이외의 브라우저 대부분은 그러한 조건부(conditional) 선언을 무조건(unconditional) 선언으로 취급하고 조건이 참이든 아니든 함수를 만듭니다(이 글 참조). 따라서 조건부 선언은 사용되어서는 안됩니다, 조건부 생성이 function 식을 사용하기에.
함수 선언 hoisting
JavaScript에서 함수 선언은 함수 정의를 끌어올립니다(hoisting). 다음과 같이 선언되기 전에 함수를 사용할 수 있습니다.
hoisted(); // logs "foo" function hoisted() { console.log("foo"); }
function 식
은 끌어올림(hoisted) 되지 않음을 주의하세요:
notHoisted(); // TypeError: notHoisted is not a function var notHoisted = function() { console.log("bar"); };
예제
function
사용하기
다음 코드는 제품 a
, b
및 c
의 판매 대수가 주어졌을 때, 총 판매량을 반환하는 함수를 선언합니다.
function calc_sales(units_a, units_b, units_c) { return units_a*79 + units_b * 129 + units_c * 699; }
스펙
브라우저 호환성
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Allowed in sloppy mode | 49.0 |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | No support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Allowed in sloppy mode | No support |
49.0 |
49.0 |