JavaScript 함수 정의
JavaScript 함수 정의
JavaScript는 함수를 정의하기 위해 키워드 function을 사용합니다.
함수는 선언으로 정의할 수도 있고 표현식일 수도 있습니다.
함수 선언
이전 튜토리얼에서 여러분은 이미 함수 선언의 구문을 이해했습니다.
function functionName(parameters) {
실행 코드
}
함수는 선언 직후에 실행되지 않고 실행됩니다. 필요할 때 전화할 시간이에요.
함수 표현식
JavaScript 함수는 표현식으로 정의할 수 있습니다.
함수 표현식은 변수에 저장될 수 있습니다:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p>函数可以存储在变量中:</p> <p id="demo"></p> <script> var x = function (a, b) {return a * b}; document.getElementById("demo").innerHTML = x; </script> </body> </html>
함수 표현식이 변수에 저장되면 해당 변수는 함수로도 사용될 수 있습니다:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p>函数存储在变量后,变量可作为函数使用:</p> <p id="demo"></p> <script> var x = function (a, b) {return a * b}; document.getElementById("demo").innerHTML = x(4, 3); </script> </body> </html>
위 함수는 실제로 익명 함수입니다(함수에는 이름이 없습니다). ).
함수는 변수에 저장되며 함수 이름이 필요하지 않으며 일반적으로 변수 이름을 통해 호출됩니다.
위 함수는 실행문이기 때문에 세미콜론으로 끝납니다.
Function() 생성자
위의 예에서 함수는 function 키워드를 통해 정의된다는 것을 배웠습니다.
함수는 내장된 JavaScript 함수 생성자(Function())를 통해 정의할 수도 있습니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p>JavaScrip 内置构造函数。</p> <p id="demo"></p> <script> var myFunction = new Function("a", "b", "return a * b"); document.getElementById("demo").innerHTML = myFunction(4, 3); </script> </body> </html>
함수 호이스팅(Hoisting)
우리는 이미 이전 튜토리얼에서 "호이스팅"에 대해 배웠습니다.
호이스팅은 현재 범위를 앞으로 끌어올리는 JavaScript의 기본 동작입니다.
호이스팅은 변수 선언과 함수 선언에 적용됩니다.
따라서 함수는 선언되기 전에 호출할 수 있습니다.
myFunction(5); function myFunction(y) { return y * y; }
표현식을 사용하여 함수를 정의할 때는 리프팅이 불가능합니다.
자체 호출 함수
함수 표현식은 "자체 호출"이 가능합니다.
자기 호출 표현이 자동으로 호출됩니다.
표현식 뒤에 ()가 오면 자동으로 호출됩니다.
선언된 함수를 직접 호출할 수 없습니다.
함수는 객체입니다
JavaScript에서 typeof 연산자를 사용하여 함수 유형을 결정하면 "function"이 반환됩니다.
하지만 JavaScript 함수는 객체로 더 정확하게 설명됩니다.
JavaScript 함수에는 속성과 메서드가 있습니다.
arguments.length 속성은 함수 호출 중에 수신된 매개변수의 수를 반환합니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p> arguments.length 属性返回函数接收到参数的个数:</p> <p id="demo"></p> <script> function myFunction(a, b) { return arguments.length; } document.getElementById("demo").innerHTML = myFunction(4, 3); </script> </body> </html>
함수는 객체 메서드라고 하는 객체의 속성으로 정의됩니다.
함수를 사용하여 새 객체를 생성하는 경우 이를 객체의 생성자라고 합니다.