현상:
1. JavaScript에서는 변수 및 기능 선언이 최상위 실행으로 홍보됩니다.
2. 기능의 개선은 변수의 개선보다 높다.
3. Var가있는 함수 내부에서 동일한 이름을 가진 외부 변수가 선언되면 함수는 더 이상 위쪽으로 보지 않습니다.
4. 익명 기능은 홍보되지 않습니다.
5. 다른 <cript> 블록의 함수는 서로 영향을 미치지 않습니다.
예:
기능 선언 홍보가 변수 선언보다 높습니다
// 변수 a와 함수 avar a를 선언합니다. 함수 a () {} alert (typeof a); // "함수"가 표시되며, 이는 기능의 우선 순위가 var보다 높음을 예비 적으로 증명합니다. // 기능을 먼저 선언 한 다음 변수를 선언하여 위의 예제가 변수 함수를 덮어 쓰지 않음을 증명합니다. a () {} var a; 경고 (유형 a); // 디스플레이는 여전히 "정의되지 않은"것이 아니라 "기능", 즉 함수의 우선 순위가 var보다 높습니다. // 변수를 선언하고 값 함수 a () {} var a = 1; alert (typeof a); // 숫자는 현재 기능이 아닙니다. // 참고 : "var a = 1"은 "var a; a = 1"과 동일합니다. 즉, 먼저 선언 한 다음 값을 할당합니다. "a = 1"은 자연스럽게 숫자 인 A를 재 할당하는 것과 같습니다!이 함수는 var를 사용하여 외부와 동일한 변수를 정의하며 함수는 더 이상 외부 변수를 위쪽으로 찾지 않습니다.
var value = 'hello'; function show () {alert (value); if (! value) {var value = 'function'; } alert (value);} show () // 함수는 여기에서 호출되어 "undefined", "function"을 팝업합니다. 위의 예는 var value = 'hello'; function show () {var value; //이 줄 알림 (값)에 주목하십시오. if (! value) {value = 'function'; //이 줄은 var} alert (value);} show () // 1을 제거합니다. 위 열의 쇼에서 내부적으로 정의 된 값이 Var를 사용하지 않으면 외부 변수가 사용되며 "hello"는 "Hello"가 나타납니다. // 2. 함수 내부에서 값이 정의되지 않으면 외부의 값도 얻을 수 있습니다.익명 기능은 상향 개선되지 않습니다
getName () var getName = function () {alert ( 'closule')} function getName () {alert ( 'function')} getName () // 위 코드는 function getName () {// 함수가 aLert ( 'function') getName () var getName = function ( 'getName (') //) "함수"및 "Closule"이 나타납니다.다른 <cript> 블록의 함수는 서로 영향을 미치지 않습니다.
<cript> getName () var getName = function () {alert ( 'closule')}} <cript> <cript> function getName () {alert ( 'function')} <cript> // code execution error : typeError : getName은 첫 번째 <cript> 블록의 getName () 함수가 정의되지 않기 때문에 //가 기능이 아니기 때문에 //JavaScript의 변수 및 기능 선언의 개선에 대한 위의 간단한 논의는 내가 공유하는 모든 내용입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.