JavaScriptはメモの変数とその作用領域を勉強します.
2797 ワード
一、変数
ECMAscript変数は、緩型変数です.いわゆる緩型変数とは、変数名が任意のタイプのデータを保存できます.各変数は1つの値を保存するプレースホルダだけです.
定義:var first Demo;
二、変数のスコープ
2.1基本概念
var定義変数を使用して、この変数の作用領域を定義する局所変数は、このような変数を定義する方法も明示的な声明となっている.
理解できないということは、以下のような簡単で乱暴な例を見てもいいです.
var定義変数を省略します.変数を定義する関数を一回呼び出すと、グローバル範囲でその変数にアクセスできます.このような変数を定義する方法は、暗黙的な声明としても知られている.
変数の作用領域を明らかにすると、変数を合理的に宣言する方法を考えることができます.これは不必要なメモリオーバヘッドを低減しながら、変数の繰り返し定義を回避して、以前に定義された変数をカバーすることによる面倒を大きく回避することができます.
2.2スコープ分析
A、0 1 0 1 0
B、0 undefined 1 0
C、0報ミスi is not defined
結果はどれかを推測してもいいです.メッセージで詳しく説明します.
以上は本文の全部の内容です.どのプログラム言語においても変数のスコープは非常に重要な詳細です.JSの変数の作用領域はJAVA、Cなどの言語と比較してより自由に見えます.大きな特徴はJS変数はブロックレベルの作用領域がなく、関数中の変数は関数全体で有効です.
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変数はブロックレベルの作用領域がなく、関数中の変数は関数全体で有効です.