JS 기능에 대한 심층 분석

php中世界最好的语言
풀어 주다: 2018-03-08 15:31:10
원래의
1642명이 탐색했습니다.

이번에는 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 중국어 웹사이트에 있습니다!

관련 읽기:

CSS3

JavaScript 배열-문자열-수학적 함수로 로그인 상자를 만드는 방법

JS Dom 및 이벤트 요약

위 내용은 JS 기능에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿