JavaScriptには、ローカル変数とグローバル変数の2種類の変数があります。もちろん、私たちの記事は、これらの2つの変数を本当に区別するのに役立ちます。
まず、ローカル変数は、この変数によって宣言された関数内でのみ呼び出される機能を指します。コード全体でグローバル変数として呼び出すことができる変数。もちろん、文字通り理解することは間違いなく明確ではありません。以下で詳しく紹介します。
私たち全員が知っているように、変数はVARキーワードで宣言する必要があります。ただし、変数はJavaScriptで暗黙的に使用することもできます。つまり、宣言なしで直接使用されます。さらに、JavaScriptは常にグローバル変数として暗黙的に宣言された変数を使用することに注意してください。
例えば:
コードコピーは次のとおりです。
関数myname(){
i = 'Yuanjianhang';
}
myname();
function saysname(){
アラート(i);
}
sayname();
出力の結果は次のとおりです
これは、変数Iがグローバル変数であることを示しています。上記のコードが以下に変更された場合:
コードコピーは次のとおりです。
関数myname(){
var i = 'yuanjianhang';
}
myname();
function saysname(){
アラート(i);
}
sayname();
この時点で、ブラウザには出力の結果がありません。これは、関数myNameで定義されているため、MyNameのローカル変数であり、外部から呼び出すことはできません。
次のコードを振り返ってください。
コードコピーは次のとおりです。
関数myname(){
i = 'Yuanjianhang';
}
myname();
function saysname(){
アラート(i);
}
sayname();
それでは、いくつかの変更を加えてmyname()を削除しましょう。コードは次のとおりです。
コードコピーは次のとおりです。
関数myname(){
i = 'Yuanjianhang';
}
function saysname(){
アラート(i);
}
sayname();
現時点では、ブラウザはあまり反応しません。私はグローバル変数ですが、関数myName()は呼び出されないため、それはそれと同等であると宣言されていますが、それは私に値を割り当てないため、出力はありません。
同様に、上記の例が次のように変更されている場合:
コードコピーは次のとおりです。
関数myname(){
i = 'Yuanjianhang';
}
function saysname(){
アラート(i);
}
sayname();
myname();
この場合、結果は出力されません。 JavaScriptコードが実行されると、変数の値は、SayName()関数が呼び出されたときに確認されます。現時点では、MyName関数はまだ実行されていません。つまり、私はまだ割り当てられていないため、結果は出力されません。
みんなのより良い理解を促進するために、別の例を次に示します。
コードコピーは次のとおりです。
var i = 'yuanjianhang';
function mylovename(){
i = 'guanxi';
}
mylovename();
関数myname(){
アラート(i);
}
myname();
今回の結果は何ですか?
答えはGuanxiです
まず第一に、Iの元の値はYuanjianhangですが、Mylovename()関数を呼び出した後、Iの値はGuanxiに変更されるため、最終出力結果はGuanxiです。
コードを変更した場合:
コードコピーは次のとおりです。
var i = 'yuanjianhang';
function mylovename(){
var i = 'guanxi';
}
mylovename();
関数myname(){
アラート(i);
}
myname();
現時点での結果は元Yuanjianhangです。なぜなら、コード内の2つのIは異なり、1つはグローバルで、もう1つはローカルです。この方法でも理解できます。 2人の名前は同じですが、これら2人の本質は、同じ名前の2人がいるかのように異なります。名前は同じですが、同じ人ではありません。
コードをこれに変換する場合:
コードコピーは次のとおりです。
var i = 'yuanjianhang';
function mylovename(){
i = 'guanxi';
}
関数myname(){
アラート(i);
}
myname();
mylovename();
私は誰もが自分自身で結果を把握できると信じており、結果はYuanjianhangです。
グローバル変数は関数内で呼び出すことができるため、次の状況についてはどうでしょうか。
コードコピーは次のとおりです。
var i = 'yuanjianhang';
function mylovename(){
i = 'guanxi';
アラート(i);
}
mylovename();
現時点では変数はどの値ですか?
分析しましょう:
まず、グローバル変数Iは、Yuanjianhangとして割り当てられています。
次のmylovename()関数が呼び出され、グローバル変数Iが新しい値に再割り当てされます:guanxi
結果は間違いなく次のとおりです。
このように、事前にアラートを取るとどうなりますか:
コードコピーは次のとおりです。
var i = 'yuanjianhang';
function mylovename(){
アラート(i);
i = 'guanxi';
}
mylovename();
現時点での結果はどうなりますか?
検証済みの結果は次のとおりです
コードが次の場合はどうなりますか:
コードコピーは次のとおりです。
var i = 'yuanjianhang';
function mylovename(){
アラート(i);
}
mylovename();
現時点での結果は、Yuanjianhangです
なぜ上記の未定義の状況が起こるのですか?コードの実行順序は上から下までであり、iを出力する前にiの定義はないためです。したがって、このことから、コードを使用する場合、同様の問題を回避するために変数の宣言をコードの前に配置する必要があることがわかります。
同様に:
コードコピーは次のとおりです。
var i = 'yuanjianhang';
function mylovename(){
アラート(i);
var i = 'guanxi';
}
mylovename();
この場合、出力:未定義です
さて、私は変数について非常に多くの紹介しか持っていません、そして、私は誰でもこれらを理解できると信じています。コードがどのようにコピーされても、そのコアは変更されません。
上記はこの記事に関するすべてです。 JavaScriptのローカル変数とグローバル変数の違いをより深く理解しましたか?明けましておめでとうございます。幸せな研究をお祈りします。