ホームページ >ウェブフロントエンド >jsチュートリアル >JS の変数とスコープ、未定義および null_javascript のスキルについての深い理解

JS の変数とスコープ、未定義および null_javascript のスキルについての深い理解

WBOY
WBOYオリジナル
2016-05-16 16:57:151211ブラウズ

状況 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 の判定は型に関係なく値を判定します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。