이 글은 JavaScript의 구문 승격(코드 예제)에 대한 소개를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
1. 개요
JS에서는 코드가 문장 단위로 실행되는 것을 당연하게 여기지만, 이는 완전히 틀린 것은 아닙니다.
singer = "周杰伦"; var singer; console.log(singer); // 周杰伦 sing(); // 故事的小黄花 function sing() { console.log("故事的小黄花"); }
위의 첫 번째 코드 조각이 일반적인 프로세스를 따르면 결과는 'Jay Chou'가 됩니다. var singer
会重新把值默认声明为 undefined
var singer = undefined; singer = "周杰伦"; console.log(singer); // 周杰伦 function sing() { console.log("故事的小黄花"); } sing(); // 故事的小黄花
JS 정의 선언은 컴파일 단계에서 수행되고 할당 및 기타 작업은 실행 단계에서 수행됩니다.그래서
선언, 그다음 할당, 실행이 바로 변수와 함수의 선언 호이스팅입니다.
2. 함수 선언이 변수 선언보다 우선합니다.
var foo = "bar"; function foo() { } typeOf(foo); // string var foo = "bar"; function foo() { } typeOf(foo); // string
var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar();
모든 도메인은 소유권 주장 승격을 거칩니다.위 코드는 다음과 같습니다.
var foo = 1; function bar() { var foo = undefined; if (!foo) { // !foo === true var foo = 10; } alert(foo); } bar();
// 函数声明 function foo() { console.log("函数声明"); } // 函数表达式 var foo = function() { console.log("函数表达式"); }
foo(); // Uncaught TypeError: foo is not a function // 函数表达式 var foo = function() { console.log("函数表达式"); }
위 내용은 JavaScript의 선언 호이스팅 소개(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!