ホームページ  >  記事  >  ウェブフロントエンド  >  jsの事前解釈とはどういう意味ですか? js における事前解釈の意味の簡単な分析

jsの事前解釈とはどういう意味ですか? js における事前解釈の意味の簡単な分析

不言
不言オリジナル
2018-08-22 17:59:501631ブラウズ

この記事の内容は、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)
    }

上記コード グローバル スコープで上から下に実行する場合の事前解釈。最初にテストを宣言し、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が宣言されているだけで定義されていなかったので、最初のコンソールは未定義だったのですが、2番目のコンソールが来たとき、2台がtestに割り当てられていたので、最初の2つのコンソールは貴重です。そして、foo は関数であるため、事前解釈中に宣言および定義する必要があるため、foo(5) には値が含まれます。

関連する推奨事項:

JavaScriptのpre-explanation_javascriptスキルを垣間見る


JScript_javascriptスキルの条件付きコメントの詳細な説明

以上がjsの事前解釈とはどういう意味ですか? js における事前解釈の意味の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

関連記事

続きを見る