ホームページ >ウェブフロントエンド >jsチュートリアル >JS変数宣言の詳しい説明
JavaScriptの変数宣言文は、どこに出現しても他のコードよりも先に実行されます。この記事では、JavaScriptの変数宣言に関する知識を紹介しますので、興味のある方は一緒に学びましょう
。どこに出現しても、他のコードよりも先に実行されます。 var キーワードを使用して宣言された変数のスコープは、現在の実行コンテキストです。これは周辺関数である可能性があります。変数が関数本体の外側で宣言されている場合、それはグローバル変数です。 関数本体の外で定義されたものはグローバル変数、関数本体の内部で定義されたものはローカル変数です。ここでの定義は、var による宣言を指します。
JavaScript には暗黙的なグローバルの概念があり、宣言されていない変数はグローバル オブジェクト プロパティになることを意味します。例:
function test(){ myname = "huming"; alert(myname); } test(); // "huming" alert(myname); //"huming"
2 つの結果は同じであり、myname がグローバル変数であることを示しています。
それでは、暗黙的なグローバル変数と明示的に定義されたグローバル変数の間に違いはあるのでしょうか? 。答えは間違いなく「はい」です。以下の例を見てください:
// 定义三个全局变量 var global_test = ; global_test = ; // 反面教材 (function () { global_test = ; // 反面教材 }()); // 试图删除 delete global_test; // false delete global_test; // true delete global_test; // true // 测试该删除 alert(typeof global_test); // "number" alert(typeof global_test); // "undefined" alert(typeof global_test); // "undefined"
上の例からわかるように、関数の外で var によって定義された global_test1 は削除できません。また、var 定義のない global_test2 と global_test3 は (関数の有無に関係なく) 削除されます。関数本体内で作成されます)。
要約すると、関数本体の外側で var を介して宣言されたグローバル変数は削除できませんが、暗黙的なグローバル変数は削除できます。
ここで注意すべき点: JavaScript には「ホイスティング」(一時停止/上位解析/事前解析) と呼ばれる動作があります。
例で説明しましょう:
var myname = "huming"; //声明全局变量 function test() { alert(myname); var myname = "local_huming"; alert(myname); } test();
2 つのアラートの内容は一貫していると思いますか? ?明らかに一貫性がありませんが、一貫していることは言うまでもありません。 。実際の出力は、「unknown」、「local_huming」です。
上記の例は
var myname = "huming"; //声明全局变量 function test() { var myname; alert(maname);<br> myname = "local_huming"; alert(myname); // "local" } test();
に相当します。alertが初めて出力するmynameはあなたが思っているようなグローバル変数ではなく、それと同じスコープ(関数本体)にあるローカル変数です。宣言はされていないものの、そのように扱われます。これを「吊り上げ」といいます。
これで明らかになるはずです。関数本体で変数を使用し、後でそれを再宣言すると、エラーが発生することがあります。
仕様の記述:
function test() { var a = , b = , c = a + b, d = {}, e, f; // function body... }
利点は次のとおりです:
1. すべてのローカル変数が関数の先頭で定義されるため、変数を使用する前に論理エラーを防ぐことができます。定義されています。
JavaScriptでは、
(name)にスコープ(スコープ)を入力する4つの方法があります
言語組み込み、すべてのスコープにはこれと引数のキーワードがあります仮パラメータ、
関数パラメータはスコープ全体で有効です
上記の 4 つの順序は、
優先度
以上がJS変数宣言の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。