2016年12月31日土曜日

変数のスコープ(JavaScript)

JavaScript

ここでは、netED(クラウド型の編集、実行環境)

を利用して、すぐに確認できますよ!


関数内でのローカル変数は、

  変数定義 var をつけます






JavaScriptでは、関数内でvarで変数定義すれば
関数内のローカル変数になります。


関数内で変数をvarで定義



ソース1
  <body>
 <script>
  var i=10;
  function testVar(){
  
                var i=12345;  
                document.write("testVar="+ i+ "<br>")
           }
document.write("i="+ i + "<br>");
  testVar();
document.write("i="+ i + "<br>");

</script>
  </body>


結果
i=10
   testVar=12345
i=10
結果、グローバル変数は、保持されていますね!



関数内で変数をvarで定義しないで、外部変数名に値を代入



ソース2
  <body>
<script>
var i=10;
function testVar(){
i=12345;
                document.write("testVar="+ i+ "<br>");
}
document.write("i="+ i + "<br>");
testVar();
document.write("i="+ i + "<br>");
</script>
  </body>

結果
i=10
testVar=12345
           i=12345

結果、グローバル変数に代入したことになります。

最後に、以下の例もあります。
結果は、こちらを実行して確認してみましょう。

ソース3




  <body>
<script>
var i=10;

function testVar( i ){

document.write("testVar1="+ i+ "<br>");
i=12345;
document.write("testVar2="+ i+ "<br>");
}


document.write("i="+ i + "<br>");
testVar( 99 );
document.write("i="+ i + "<br>");
</script>
  </body>