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>
함수는 객체 메서드라고 하는 객체의 속성으로 정의됩니다.
함수를 사용하여 새 객체를 생성하는 경우 이를 객체의 생성자라고 합니다.