Javascript変数の宣言と役割ドメイン

3253 ワード

Javascript変数宣言
JavaScriptでは、二重引用符で文字列を宣言したり、一重引用符で文字列を宣言したりできます.主にhtmlとの統合を容易にし、エスケープの面倒を避けるためです.
JavaScriptはダイナミックタイプなので
var i=10;i=「test」は合法です.
var m,n,x,y=10;合法的だ
変数が使用可能かどうかを判断する
Javascriptでは、1つの変数で計算する場合、まず変数がundefinedでもnullでもないと判断します
2つの判断方法がありますが、違いがあるので、2つ目をお勧めします.
1つ目:
<script type="text/javascript">



        //var n;

        //alert(n+100);//   NaN,      。



        //

        //          ,        x,        ,   

        if(n){

            alert('    ');

        }else{

            alert('    ');

        }



    </script>

2つ目:
<script type="text/javascript">



        //      ,      x,              

        //var x=10;

        //  :undefined     ,      x   ,       x              

        if(typeof(x)!='undefined'&&x!=null){

            alert('   ');

        }else{

            alert('   ');

        }

    </script>

Javascriptには役割ドメインがありません
どうしてそう言うのですか.例を見てみましょう

        alert(n);//アクセスできません.jsコードは上から下へ実行されます.このときnはまだ宣言されていません.   
   
        var n=22;
   
            alert(n);//22,タグにまたがるアクセス変数n   
デフォルトでは、scriptラベルに直接変数を定義すると、Windowsオブジェクトに属するグローバル役割ドメイン範囲(グローバル実行環境)に属します.
1ページの複数のラベルの変数は、互いにアクセスできます.
グローバル役割ドメイン範囲の変数は、Webページが閉じるかブラウザが閉じるまでリソースを解放しません.
JSにはごみ回収メカニズムがあり、放出可能な資源の変数を定期的に回収する.変数をnullに設定すると、回収可能であることを示します.注意:
関数内部のforまたはwhileまたはifなどのブロックで宣言された変数は、役割ドメインの範囲も関数全体です.
 
function f1(){              for(var i=0;i<5;i++){                 var sum=10;                 if(i==4){                     sum=100;                 }             }             alert(sum);          }          f 1();//100が得られ、sumの役割ドメインがf 1()内にあることを説明する.
 
混同を避けるために、関数内の最初から変数を宣言したほうがいいです.
変数を使用する前にvar宣言を使用しなくても、このような変数は「グローバル変数」(推奨しない)とみなされます.結論:JSにはブロックレベルの役割ドメイン範囲はありません.