JavaScript グローバル変数宣言の概要とその利点と欠点

伊谢尔伦
リリース: 2017-07-18 09:17:40
オリジナル
2402 人が閲覧しました

JavaScriptにおけるグローバル変数の宣言は、主に明示的宣言と暗黙的宣言に分けられます:

宣言方法その1:

var(キーワード)+変数名(識別子)を使って関数の外で宣言する、つまりグローバル変数です。それ以外の場合は、関数内で宣言されたローカル変数です。このメソッドは明示的な宣言です。詳細は次のとおりです。

<script> 
  var test = 5;//全局变量 
  function a(){ 
    var a = 3;//局部变量 
    alert(a); 
  } 
  function b(){ 
    alert(test); 
  } 
  //a();//调用a方法,那么方法里面的内容才会执行 
  //b();//同上 
</script>
ログイン後にコピー

宣言メソッド 2:

var を使用せずに、識別子 test に値を直接割り当てます。これにより、グローバル変数 test が暗黙的に宣言されます。ステートメントが関数内にある場合でも、関数が実行されると test はグローバル変数になります。

<script> 
    test = 5;//全局变量 
    function a(){ 
      aa = 3;//也是全局变量 
      alert(test); 
    } 
    //a();  //输出5 
    //alert(aa);//这里也可以方法a()方法里面的变量,因为aa是全局变量 
  </script>
ログイン後にコピー

宣言メソッド 3:

ウィンドウ グローバル オブジェクトを使用して宣言します。グローバル オブジェクトの属性もグローバル変数に対応します。詳細は次のとおりです。

<script> 
  window.test = 50; 
  alert(test);//输出50 
</script>
ログイン後にコピー

このメソッドは、いくつかの関数を公開するためによく使用されます。匿名関数が実行された後の全体像。 例えば、JQuery1.5の最後の文
コードは次のとおりです:

window.jQuery = window.$ = jQuery;
ログイン後にコピー

グローバル変数の利点:

変数の数を減らし、実パラメータと仮パラメータのデータ転送にかかる時間を削減できます。

グローバル変数の欠点:

(1) グローバル変数は、プログラムの実行開始時に静的記憶領域に格納され、プログラムの終了時にメモリが解放されます。ローカル変数の動的割り当ておよび動的解放と比較して、有効期間は比較的長いため、グローバル変数が多すぎると、より多くのメモリ ユニットを占有することになります。

(2) グローバル変数は関数のカプセル化パフォーマンスを破壊します。関数はブラック ボックスのようなもので、関数のパラメーターと戻り値を通じて入出力を実行します。関数の内部実装は比較的独立しています。ただし、関数内でグローバル変数が使用されている場合、関数本体内のステートメントは関数のパラメーターをバイパスしてアクセス時に値を返す可能性があり、この状況では関数の独立性が破壊され、関数がグローバル変数に依存するようになります。同時に、この機能の移植性も低下します。

(3) グローバル変数により、関数のコードが読みにくくなります。複数の関数がグローバル変数を使用する可能性があるため、関数の実行時にグローバル変数の値がいつでも変更される可能性があり、これはプログラムのエラー チェックやデバッグに非常に悪影響を及ぼします。
したがって、絶対に必要な場合を除き、グローバル変数を使用しないことが最善です。

変数が空かnullかを判断するJSメソッド

function isNull(data){
return (data == "" || data == undefined || data == null) ? "暂无" : data;
}
ログイン後にコピー

以上がJavaScript グローバル変数宣言の概要とその利点と欠点の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート