>  기사  >  웹 프론트엔드  >  js의 사전 해석은 무엇을 의미합니까? js에서 사전 해석의 의미에 대한 간략한 분석

js의 사전 해석은 무엇을 의미합니까? js에서 사전 해석의 의미에 대한 간략한 분석

不言
不言원래의
2018-08-22 17:59:501595검색

이 글의 내용은 js의 사전 해석이 무엇을 의미하는지에 관한 것입니다. js의 사전 해석의 의미에 대한 간략한 분석은 일정한 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

예전에도 사전설명, 사전설명이라는 말을 자주 들었는데, 사전설명이 정확히 뭔가요? 오늘은 간략하게 얘기해보겠습니다.
사전 해석은 우리가 일반적으로 변수 선언이라고 부르는 것이기도 합니다. 현재 범위에서 js 코드가 실행되기 전에 브라우저는 기본적으로 모든 변수와 함수를 먼저 선언하거나 정의합니다.
그럼 진술은 무엇이고 정의는 무엇인가요?
선언: 예를 들어

    var test

는 전역 범위에서 test라는 변수를 선언했음을 브라우저에 알리는 것입니다.

정의: 예를 들어

    test=2

는 우리가 선언한 변수에 값을 할당합니다. var 및 function 키워드를 사용하는 경우 사전 해석에서도 다릅니다. var가 있는 것들은 사전 해석에서 미리 선언된 것이고, 함수는 사전 해석에서 선언되고 정의되어야 하기 때문에 위에서 "미리 선언

또는

정의"라고 말한 이유가 예를 들어

    var test = 2
    var obj = {"name":"代码"}
    function foo (val) {
        var test2 = val
        console.log(test2)
    }

위와 같습니다. code 사전 해석 전역 범위에서 위에서 아래로 실행할 때 먼저 테스트를 선언하고 obj를 선언한 다음 foo를 선언하고 정의합니다. 그렇다면 foo의 var test2는 전역 범위에서 사전 해석됩니까? 물론 작동하지 않습니다. 위에서 말했듯이 "js는 현재 범위에서 실행됩니다." test2는 foo의 범위에 있으며 foo가 실행될 때만 사전 해석됩니다. 따라서 사전 해석은 현재 범위에서만 발생하며, 함수가 실행될 때만 사전 해석됩니다.

그래서 면접을 보러 나가면 이런 질문이 나올 수도 있겠네요

    console.log(test )
    foo(5)
    var test = 2
    console.log(test )
    var obj = {"name":"代码"}
    function foo (val) {
        var test2 = val
        console.log(test2)
    }
그럼 인쇄된 내용은 뭔가요?

    console.log(test )//undefined
    foo(5)//5
    var test = 2
    console.log(test )//2
    var obj = {"name":"代码"}
    function foo (val) {
        var test2 = val
        console.log(test2)
    }
처음에는 test만 선언하고 정의하지 않아서 첫 번째 콘솔은 undefind였는데, 두 번째 콘솔이 오면 2개가 test에 할당되어 있어서 첫 번째 두 개의 콘솔이 귀중합니다. 그리고 foo는 사전 해석 중에 선언되고 정의되어야 하는 함수이므로 foo(5)에는 값이 있습니다.

관련 추천:

JavaScript 사전 설명_javascript 기술 살짝 엿보기


JScript_javascript 기술의 조건부 주석에 대한 자세한 설명

위 내용은 js의 사전 해석은 무엇을 의미합니까? js에서 사전 해석의 의미에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.