JavaScript 함수 정의
- 이전 페이지 JS 객체 참조
- 다음 페이지 JS 함수 매개변수
를 통해 정의됩니다. function
JavaScript 함수는키워드을 정의할 수 있습니다.
를 사용할 수 있습니다.선언또는 함수표현식。
함수 선언
이 튜토리얼에서 약간 이전에, 다음과 같은 문법을 통해 배웠습니다:선언함수:
function functionName(parameters) { 실행할 코드 }
선언된 함수는 직접 실행되지 않습니다. "이후 사용을 위해 저장됨"으로 저장되고, 호출될 때 실행됩니다.
예제
function myFunction(a, b) { return a * b; }
세미콜론은 실행 가능한 JavaScript 문장을 구분합니다.
함수가선언함수는 실행 가능한 문장이 아니며 세미콜론으로 끝나는 것이 일반적이지 않습니다.
함수 표현식을 사용할 수 있습니다.
JavaScript 함수는표현식로 정의할 수 있습니다.
함수 표현식은 변수에 저장될 수 있습니다:
예제
var x = function(a, b) {return a * b};
함수 표현식을 변수에 저장한 후, 이 변수는 함수로 사용될 수 있습니다:
예제
var x = function(a, b) {return a * b}; var z = x(4, 3);
위의 함수는 실제로는 이렇게 되어 있습니다익명 함수(이름이 없는 함수)。
변수에 저장된 함수는 함수 이름이 필요하지 않습니다. 항상 변수 이름을 사용하여 호출합니다.
위 함수는 세미콜론으로 끝나기 때문에 그것은 실행 가능한 문장의 일부입니다.
Function() 구조체를 통해 정의됩니다.
이전 예제에서 보았듯이, JavaScript 함수는 function
로 정의된 키워드를 통해 정의할 수 있습니다.
함수는 이름을 Function()
를 사용하여 정의할 수 있습니다。
예제
var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3);
실제로 함수 생성자를 사용하지 않아도 됩니다. 위의 예제와 같이 작성하면 됩니다:
예제
var myFunction = function (a, b) {return a * b}; var x = myFunction(4, 3);
대부분의 경우 JavaScript에서 new 키워드를 사용하지 않아도 됩니다 new
키워드입니다。
함수 提升
이 튜토리얼에서 조금 전에 "提升"(hoisting)을 배웠습니다。
Hoisting은 JavaScript가선언의존성을 최소화하는 기본 행동입니다。
Hoisting은 변수 선언과 함수 선언에 적용됩니다。
따라서 JavaScript 함수는 선언 전에 호출될 수 있습니다:
myFunction(5); function myFunction(y) { return y * y; }
표현식으로 정의된 함수는 提升되지 않습니다。
자기 호출 함수
함수 표현식은 "자기 호출"으로 사용될 수 있습니다。
자기 호출 표현식은 호출되지 않는 상태에서 자동으로 호출됩니다
함수 표현식은 표현식 뒤에 ()
。
함수 선언에 자기 호출을 할 수 없습니다。
함수 표현식을 나타내기 위해 함수 주변에 괄호를 추가해야 합니다:
예제
(function () { var x = "Hello!!"; // 나를 호출할 것입니다 })();
위의 함수는 실제로는 이렇게 되어 있습니다익명의 자기 호출 함수(이름이 없는 함수)。
함수는 값으로 사용될 수 있습니다
JavaScript 함수는 값으로 사용될 수 있습니다:
예제
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3);
JavaScript 함수는 표현式中 사용될 수 있습니다:
예제
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2;
함수는 객체입니다
JavaScript에서의 typeof
연산자는 함수에 대해 "function
"。
하지만 JavaScript 함수를 객체로 설명하는 것이 더 좋습니다。
JavaScript 함수는 모두 있습니다속성및메서드。
arguments.length
함수가 호출될 때 받은 매개변수의 개수를 반환합니다:
예제
function myFunction(a, b) { return arguments.length; }
toString()
함수를 문자열로 반환하는 방법:
예제
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();
객체 속성으로 정의된 함수는 객체 메서드라고 합니다.
새 객체를 생성하기 위해 설계된 함수는 객체 생성 함수(객체 생성기)라고 합니다.
화살표 함수
화살표 함수는 함수 표현식을 작성하기 위해 짧은 문법을 사용할 수 있도록 합니다.
function 키워드, return 키워드 및 괄호를 사용하지 않아도 됩니다.
예제
// ES5 var x = function(x, y) { return x * y; } // ES6 const x = (x, y) => x * y;
화살표 함수는 자신의 this를 가지지 않습니다. 이는 객체 메서드로 정의하는 데 적합하지 않습니다.
화살표 함수는 승천되지 않습니다. 사용 전에 정의해야 합니다.
const는 var보다 안전합니다. 함수 표현식은 항상 상수 값입니다.
함수가 단일 문장이면 return 키워드와 괄호를 제외할 수 있습니다. 따라서 그들을 유지하는 것이 좋은 습관일 수 있습니다:
예제
const x = (x, y) => { return x * y };
IE11 또는 이전 버전은 화살표 함수를 지원하지 않습니다.
- 이전 페이지 JS 객체 참조
- 다음 페이지 JS 함수 매개변수