JavaScriptはメモの変数とその作用領域を勉強します.

2797 ワード

一、変数
ECMAscript変数は、緩型変数です.いわゆる緩型変数とは、変数名が任意のタイプのデータを保存できます.各変数は1つの値を保存するプレースホルダだけです.
定義:var first Demo;
二、変数のスコープ
2.1基本概念
var定義変数を使用して、この変数の作用領域を定義する局所変数は、このような変数を定義する方法も明示的な声明となっている.
理解できないということは、以下のような簡単で乱暴な例を見てもいいです.
 
  
test();
function test(){
var firstDemo="hello";//
    alert(firstDemo);//hello
}
 test();
 function test(){
    var firstDemo="hello";// firstDemo           
 }   
 alert(firstDemo);// ,firstDemo is not define
上記の2つの例から、一つの関数でvarを使用して変数を定義すると、その変数は関数終了後に破棄されることが分かります.
var定義変数を省略します.変数を定義する関数を一回呼び出すと、グローバル範囲でその変数にアクセスできます.このような変数を定義する方法は、暗黙的な声明としても知られている.
 
  
  <br>         test(); <br>         alert(firstDemo);   //hello <br>         function test(){ <br>              firstDemo="hello";            <br>         }        <br>    
tips:明示的宣言の変数は、プリコンパイル時に呼び出し対象にコンパイルされました.(例えば、var t=1;プリコンパイル時にvar tを実行します.解釈時にt=1を実行します.)暗黙的宣言変数とは異なり、解釈時にグローバル変数として定義されます.
変数の作用領域を明らかにすると、変数を合理的に宣言する方法を考えることができます.これは不必要なメモリオーバヘッドを低減しながら、変数の繰り返し定義を回避して、以前に定義された変数をカバーすることによる面倒を大きく回避することができます.
2.2スコープ分析
 
  
<br>     function demoFunction(s){ <br>         document.writeln(s) <br>     } <br>     var i=0; // <br>     function test(){ <br>         demoFunction(i); <br>         function innerFunction(){ <br>             var i = 1; // <br>             demoFunction(i); <br>         } <br>         innerFunction(); <br>         demoFunction(i); <br>    } <br>    test();    <br>
出力結果:0 1 0
 
  
<br>   function demoFunction(s){ <br>     document.writeln(s) <br> } <br>   var i=0; <br>   function test(){ <br>     demoFunction(i); <br>     function innerFunction(){ <br>       demoFunction(i); <br>       var i=1; <br>     demoFunction(i); <br>     } <br>     innerFunction(); <br>     demoFunction(i); <br> } <br> test(); <br>
出力結果:
A、0 1 0 1 0
B、0 undefined 1 0
C、0報ミスi is not defined
結果はどれかを推測してもいいです.メッセージで詳しく説明します.
以上は本文の全部の内容です.どのプログラム言語においても変数のスコープは非常に重要な詳細です.JSの変数の作用領域はJAVA、Cなどの言語と比較してより自由に見えます.大きな特徴はJS変数はブロックレベルの作用領域がなく、関数中の変数は関数全体で有効です.