ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript変数scope_javascriptスキルの詳細説明

Javascript変数scope_javascriptスキルの詳細説明

WBOY
WBOYオリジナル
2016-05-16 17:10:261116ブラウズ

変数のスコープは変数の可視性を指しますが、ライフサイクル (生存期間) は別の観点から変数を検査します。

JSの変数のスコープはグローバル変数とローカル変数に分かれており、関数内で定義されたものをローカル変数、関数外で定義されたものをグローバル変数と呼びます。 (「関数の外にあるものはグローバル変数と呼ばれます」は相対的なものです。ここで議論する前提は、var を使用して明示的に宣言された変数であるということです。関数内で var なしで定義された変数は、デフォルトでグローバル変数です。もちろん、var なしで変数を宣言することは嫌われます。 )。

コードをコピー コードは次のとおりです:

var glob = 4;//グローバルを宣言します関数外の変数
function fun() {
var height = 20; // 関数内で var で宣言されたものはローカル変数です
Weight = 50; // 関数内で var なしで宣言されたものは関数はグローバル変数です
}
fun();
alert(weight);

JS にはブロックレベルのスコープはありません。中括弧 {}。 Javaにはあります。メインメソッドに次のコードを記述します
コードをコピーします コードは次のとおりです:

public static void main (String... args) {
for(int i=0;i }
{
int j=10; 🎜> int z = 20;
System.out.println(i); // i が表示されないため、構文解析でエラーが報告されます。つまり、コンパイルが失敗します。
System.out.println(j); / j が表示されない、構文解析 エラーが報告されます。つまり、コンパイルが成功しません。


コードをコピーします。

コードは次のとおりです。

}
alert( i);// 出力 4、ブロックレベルのスコープなし
alert(attr); 、ブロック レベルのスコープがありません
alert(j);//出力 10、ブロック レベルのスコープがありません


これは、同時に変数を宣言するために for ループを使用することを避けることも示しています。そうしないと、グローバル名前付けスコープの汚染が発生します。

もちろん、let キーワードは変数を宣言するために JS1.7 で提案されました (https://developer.mozilla.org/cn/New_in_JavaScript_1.7 を参照)。これは for ステートメントのスコープにのみ適用されます。




コードをコピー

コードは次のとおりです。


のように
追記: Firefox2 は JS1.7 を実装します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Javascriptスコープchain_javascriptスキルの8つのポイントまとめ次の記事:Javascriptスコープchain_javascriptスキルの8つのポイントまとめ

関連記事

続きを見る