이번에는 JS 함수에 대한 심층 분석을 가져오겠습니다. 함수 선언과 함수 표현의 차이점은 무엇인가요? JS 기능 사용 시 주의사항은 무엇인가요? 다음은 실제 사례를 살펴보겠습니다.
함수 선언과 함수 표현식의 차이점은 무엇인가요? (*)
함수 선언: function bar() {}
함수 표현식: var fuc = foo(){}
1. 함수 bar는 전체 프로그램 전에 실행됩니다. 호이스트(hoisted)되어 있으므로 해당 바 기능의 전 범위에서 사용 가능합니다. 함수가 정의되기 전에 호출되어도 문제가 없습니다.
2. 함수 선언의 경우 함수 이름이 필수이지만 함수 표현식의 경우 선택 사항이므로 익명 함수 표현식과 명명된 함수 표현식이 나타납니다.
3 이 함수에서
var foo = function bar() { bar(); // Works}; bar(); // ReferenceError命名函数bar赋值给了变量foo,所以在函数声明外是不可见的,但在bar`函数内部仍然可以调用。这是因为Javascript对命名函数处理的机制,函数的名称永远在函数内部的作用域中有效。
변수 선언의 접두사는 무엇인가요? 함수 선언 접두어(**)란 무엇입니까?
변수 선언 접두어는 스코프 블록에서 모든 변수가 블록의 시작 부분에 선언된다는 의미입니다. 다음은 코드의 세 가지 예입니다.
코드 1:
var a = 1; function main() { console.log(a);//1 } main();//输出1`
코드 2:
1 var a = 1; 2 function main() { 3 console.log(a); 4 var a = 2; 5 } 6 main()//输出undefined
코드 3: 코드 2가 정의되지 않은 결과를 출력하는 이유
1 var a = 1; 2 function main() { 3 var a; 4 console.log(a); 5 a = 2; 6 }
함수의 선언 접두어는 전체 함수를 현재 함수로 승격시키는 것입니다. 범위 앞(이전 변수 선언 뒤).
var num = 1; console.log(doubleNum(num));//2 function doubleNum(num){ return num2;}
는
//函数的声明前置 var num; function doubleNum(num){ return num2;} num = 1; console.log(doubleNum(num));//2
arguments와 동일합니다. (*)
arguments는 배열과 유사한 객체입니다. 함수에 전달된 매개변수 목록을 나타냅니다. 함수의 모든 매개변수는 인수 객체를 사용하여 함수 내에서 얻을 수 있습니다. 이 객체는 함수에 전달된 각 매개변수에 대한 항목을 생성하며 항목은 0부터 색인화됩니다.
함수 오버로딩 구현 방법(**)
인수의 길이와 매개변수의 종류에 따라 구현할 수 있습니다. 예:
function sumOfSquares(a, b, c){ if(arguments.length<3){ c = 0; } return aa+bb+c*c } sumOfSquares(2,3,4); // 29 sumOfSquares(1,3); // 10
즉시 실행 함수 표현은 무엇인가요? 무엇을 하는가(***)
함수의 즉각적인 실행은 일반적으로 다음 두 가지 방법으로 작성됩니다:
(function(){...})();
(function(){...}() );// 사용 권장
자바스크립트에서 괄호 한 쌍 "()"은 함수 이름 뒤에 오는 연산자로 함수 호출을 나타냅니다.
참조 - JavaScript의 즉시 실행 기능
함수의 범위 체인이란 무엇입니까(****)
범위는 변수 및 함수의 가시성과 수명 주기를 제어하는 변수 및 함수의 접근 가능한 범위입니다. JavaScript의 변수에는 전역 범위와 로컬 범위가 있습니다.
스코프 체인은 환경에서 코드가 실행될 때 실행 환경이 액세스하는 변수 및 함수에 순서대로 액세스할 수 있도록 변수 개체의 범위 체인(sc라고 하지 않는 범위 체인)이 생성됩니다. 범위의 첫 번째 개체는 항상 현재 실행 중인 코드가 있는 환경의 변수 개체(VO)입니다.
이 기사의 사례를 읽으신 후 메서드를 마스터하신 것으로 믿습니다. 기타 관련 기사는 PHP 중국어 웹사이트에 있습니다!
관련 읽기:
JavaScript 배열-문자열-수학적 함수로 로그인 상자를 만드는 방법
위 내용은 JS 기능에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!