> 웹 프론트엔드 > JS 튜토리얼 > JavaScript - 범위, 범위 체인 및 준비에 대한 자세한 내용

JavaScript - 범위, 범위 체인 및 준비에 대한 자세한 내용

php是最好的语言
풀어 주다: 2018-08-03 09:33:35
원래의
1645명이 탐색했습니다.

변수에는 다음이 포함됩니다: 전역 변수, 지역 변수

JAvaScript에서 함수에 정의된 변수는 지역 변수입니다#🎜 🎜#

Scope: 변수의 사용 범위이며,

은 로컬 범위와 전역 범위로 구분됩니다.

# 🎜 🎜#js에는 블록 수준 범위가 없습니다---괄호 쌍으로 정의된 변수입니다. 이 변수는 중괄호 밖에서도 사용할 수 있습니다.#🎜 🎜# 도메인체인 : 변수사용, 내부에서 외부로, 레이어별로 검색하여 검색 후 바로 사용가능

var num=10; //作用域链 级别:0
   var num2=20;
   var str = "abc"
   function f1() {
     var num2=20;
     function f2() {
       var num3=30;
       console.log(num);
     }
     f2();
   }
   f1();
로그인 후 복사
레이어별로 검색, 검색시 0 수준 범위의 경우 변수를 여전히 찾을 수 없으면 결과는 오류입니다.

사전 구문 분석: 브라우저가 코드를 구문 분석하기 전에 변수 선언과 함수 선언 범위의 최상위로 고급화(승격)됩니다#🎜 🎜#

(1) 변수 승격

다음의 경우 변수 선언은 고급화되지만 num의 값은 고급이 아니며 결과는

undefine

//变量的提升
    console.log(num);
    var num=100;


//提升之后为:
var num;//变量的声明提前
console.log(num);
    var num=100;
로그인 후 복사
(2)함수 선언이 고급입니다. , 코드는 계속 실행될 수 있습니다

//函数的声明被提前了
    f1();
    function f1() {
      console.log("这个函数,执行了");
    }
로그인 후 복사

그러나 다음의 경우에는 코드가 오류를 보고합니다.

f2();
    var f2=function () {
        console.log("小杨好帅哦");
    }

//声明提前后:
var f2;//为一个变量,undefind
f2();//undefind加括号是不被认可的,所以报错
    var f2=function () { 
        console.log("小杨好帅哦");
    }
로그인 후 복사

오류를 보고하지 않으려면 코드에서 다음을 수행할 수 있습니다. 다음으로 변경:

var f2;
    f2=function () {
      console.log("小杨好帅哦");
    };
    f2();
로그인 후 복사

관련 기사:

Chat JavaScript 범위 및 범위 체인에 대해 이야기해보자

# 🎜🎜#JavaScript 범위 및 범위 체인에 대한 심층 분석

관련 동영상: # 🎜🎜#

Javascript 3레벨로 재생 연결 예시

위 내용은 JavaScript - 범위, 범위 체인 및 준비에 대한 자세한 내용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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