状況 1
< ;script>
var i; //グローバル変数
//メソッド名はcamel nomenclature
//メソッド内の変数はローカル変数
関数sayHello(){
var x=100;
alert(x);
x ;
}
sayHello() //出力100
alert(x) ); //x はローカル変数でアクセスできないため、エラーが報告されます
状況 2
<script><br>function SayHello(){<br> var x =100;<br> if(x==100){<br> var y=x 1;<br>alert(y) //出力 101<br>}<br> alter(y);メソッド内の出力 101 内部的には、C# にはブロック レベルのスコープはありません。 ! !
<p> for(var i=0;i alert(i)<br> } //for ループで定義された変数はブロックレベルのスコープです <br> alter(i); //iはローカル変数なので2を出力</p>
<p>}<br>sayHello();<br></script>
注: 変数は、使用前に var で宣言する必要はありません。このような変数は「グローバル変数」とみなされます。 "。しかし、このように使用されることはほとんどありません
未定義と null について
次の状況では、変数の値は未定義です
1. 変数は定義されていますが、値が割り当てられていない場合、変数の値は未定義です
2。 、戻り値は未定義です
3. オブジェクトの属性値が存在しない場合、戻り値は次のようになります: document.ddd
例 1:
var xx;
var yy=null;
if(xx==yy){
アラート('等しい');
}
その他{
alert('notqual');
}
ブラウザは if 判定を行う際に xx と yy の値を判定するため、出力結果は等しいです。それらには特定の値はなく、偽とみなされます。
if 判定を ===[すべて等号] に置き換えると、出力は等しくなくなります。 === は、xx と yy のデータ型と値が同じでなければならないことを意味するためです。
例 2:
var xx=10
var yy='10';
if(xx==yy){
alert('equal');
}
その他{
alert('not平等');
}
===に変更すると出力は等しくない
例 3:
var n=' 10';
スイッチ(n){
ケース 10:
alert('number');
break;
ケース '10':
alert('string');
break;
}
出力文字列
switch での判断は型を考慮する必要があります
概要: if の判定は型に関係なく値を判定します