ホームページ >ウェブフロントエンド >jsチュートリアル >jsの未定義型、未定義、null、_javascriptスキル判定の違いを詳細に分析

jsの未定義型、未定義、null、_javascriptスキル判定の違いを詳細に分析

WBOY
WBOYオリジナル
2016-05-16 17:09:051315ブラウズ

js が未定義の型を決定します

今日は、showModalDialog を使用してページを開いて値を返します。開いているページで閉じるボタンをクリックした場合、またはブラウザで直接閉じるボタンをクリックした場合の戻り値は未定義です
ので、ご自身で判断してください

var reValue=window.showModalDialog("","","");
if (reValue== 未定義){
アラート("未定義");
}

それを見分けることができないことがわかり、最終的に情報を確認したところ、typeof を使用する必要がありました

メソッド:
if (typeof(reValue) == "unknown") {
alert("unknown")
}
typeof は文字列を返します。可能性は 6 つあります: 「数値」、「文字列」、「ブール値」、「オブジェクト」、「関数」、「未定義」


js の unfined、null、NaN の違い

1. 型分析:
js のデータ型には、未定義、ブール、数値、文字列、オブジェクトなどが含まれます。最初の 4 つの型はプリミティブ型で、5 番目の型は参照型です。 。
var a1;
var a2 = true;
var a3 = 1;
var a4 = "Hello";
var a5 = new Object();
var a6 = null ;
var a7 = NaN;
var a8 = unknown;
alert(typeof a); //「未定義」を表示します
alert(typeof a1); //「未定義」を表示します
alert(typeof a2); //"boolean"
alert(typeof a3); //"number"
alert(typeof a4)を表示します。 //"string"
alert(typeof a5)を表示します。 ; //「オブジェクト」
alert(typeof a6) を表示します。 //「オブジェクト」
alert(typeof a7) を表示します。 //「number」
alert(typeof a8) を表示します。未定義"

上記のコードからわかるように、未定義値と未割り当て値は未定義であり、null は特別なオブジェクトであり、NaN は特別な数です。

2. 比較演算
var a1; // a1 の値は未定義です
var a2 = null;
var a3 = NaN;
alert(a1 = = a2); //「true」を表示します
alert(a1 != a2); //「false」を表示します
alert(a1 == a3); //「false」を表示します
alert(a1) ! = a3); // "true"
alert(a2 == a3) を表示します。 // "false"
alert(a2 != a3) を表示します。 a3 == a3); //「false」を表示します
alert(a3 != a3); //「true」を表示します

上記のコードから、次の結論を導き出すことができます: (1) 未定義と null は等しい; (2) NaN はどの値とも等しくないし、それ自体とも等しくない。

JavaScript 未定義プロパティ

定義と使用法
unknown 属性は、JavaScript の未定義の値を格納するために使用されます。

構文
未定義

説明
for/in ループを使用して未定義のプロパティを列挙することはできません。また、delete 演算子を使用して未定義のプロパティを削除することもできません。
未定義は定数ではないため、他の値に設定できます。
存在しないオブジェクトのプロパティを読み取ろうとした場合にも、Unknown が返されます。

ヒントとメモ
ヒント: == 演算子は未定義の値を null と同等と見なすため、値が未定義かどうかをテストするには === 演算子のみを使用できます。
注: null は値がないことを意味し、未定義は未宣言の変数、宣言されているが値が割り当てられていない変数、または存在しないオブジェクト プロパティを意味します。


この例では、2 つの変数のうち 1 つが未定義であることを検出します:

出力:

t2 は未定義です

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