JavaScript에서 함수를 만들어야하는 경우 기능 선언, 기능 표현, 각 쓰기는 다음과 같습니다.
// 메소드 1 : 함수 선언 foo () {} // 메소드 2 : 함수 expression var foo = function () {};또한 자체적으로 실행 된 함수 표현식이 있으며,이 범위에서 선언 된 변수는 다른 필드의 변수를 혼동하지 않습니다.
(function () {// var x = ... ...}) ();이 자체 -실행 된 함수 표현식은 위의 두 방법의 두 번째 방법으로 분류되며, 이는 또한 기능적 표현으로 간주 될 수있다.
메소드 1과 방법 II는 함수를 만들어 FOO라고 명명했지만 둘 사이에는 차이가 있습니다. JavaScript 통역사에 홍보 된 메커니즘이 있습니다 (Hoisting). 이는 변수 (함수)의 명세서가 최전선의 최전선으로 홍보 될 것임을 의미합니다.
예를 들어 다음 코드 세그먼트 :
ALERT (foo); // foo () {}; // 함수 bar_fn () {}출력 결과는 함수 foo () {}, undefined, functions foo () {} 및 함수 bar_fn () {}입니다.
FOO의 진술은 경고 후에 작성되었으며 JavaScript 통역사가 전면 경보로 올리기 때문에 여전히 올바르게 호출 될 수 있으며 함수 표현식으로 생성 된 기능 막대는이 처리를 즐기지 않습니다.
Bar가 개선되고 있습니까? 실제 var 선언 변수가 개선 될 것이지만, 정의되지 않은 상태로만 할당되므로 두 번째 경고는 팝업됩니다.
따라서 JavaScript 엔진의 위의 코드 순서는 다음과 같습니다.
메모:
엄밀히 말하면, JavaScript에서 함수를 작성하면 "기능 구조 방법"이라는 다른 방법이 있습니다.
var foo = function ( 'alert ( "hi!");'); 'alert ( "hi!"); // 위의 줄에 해당합니다.
이 방법은 문자열을 매개 변수로 사용하여 기능 본문을 형성합니다. 그러나이 방법에서는 실행 효율이 할인되며 매개 변수를 전달할 수 없으므로 사용하는 것이 좋습니다.