ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript_javascriptスキルにおけるnull、NaN、unknownの違いのまとめ

Javascript_javascriptスキルにおけるnull、NaN、unknownの違いのまとめ

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

1. 型分析 :
js のデータ型には、未定義、ブール、数値、文字列、オブジェクトなどが含まれます。最初の 4 つの型はプリミティブ型で、5 番目の型は参照型です。 。
コード

コードをコピー コードは次のとおりです。

var a1; >var a2 = true;
var a4 = "こんにちは";
var a6 = null; ;
var a8 = unknown;
alert(typeof a); //「未定義」の表示
alert(typeof a2); Display "boolean" "
alert(typeof a3); //「数値」を表示
alert(typeof a4); //「文字列」を表示
alert(typeof a5); //「オブジェクト」を表示
alert (typeof a6); //「オブジェクト」を表示
alert(typeof a7); //「数値」を表示
alert(typeof a8); //「未定義」を表示>
上記のコードから、未定義値と未割り当て値は未定義であり、null は特別なオブジェクトであり、NaN は特別な数値であることがわかります。

2. 比較演算




コードをコピーします
コードは次のとおりです:
var a1; // a1 の値は未定義です var a3 = NaN; alert(a1 == a2); >alert(a1 != a2); //「false」を表示 alert(a1 == a3); //「false」を表示 alert(a1 != a3); //「true」を表示🎜>alert( a2 == a3); //「false」を表示
alert(a2 != a3) //「true」を表示
alert(a3 == a3);
alert (a3 != a3); //Display "true"


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


JavaScript 未定義属性



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


構文
未定義
説明
for/in ループを使用して未定義のプロパティを列挙することはできません。また、delete を使用することもできません。操作文字を押して削除します。
未定義は定数ではないため、他の値に設定できます。
存在しないオブジェクトのプロパティを読み取ろうとした場合にも、Unknown が返されます。 ヒントと注意事項< 値は未定義と同等です。 ="= ="==">
< は値が未定義であるかどうかをテストするために使用されます。 while>
コードをコピー
コードは次のとおりです。


出力:
[補足] Null データ型
Jscript では、null データ型の値は null の 1 つだけです。キーワード null を関数または変数の名前として使用することはできません。
null を含む変数には、「値なし」または「オブジェクトなし」が含まれます。つまり、変数には有効な数値、文字列、ブール値、配列、またはオブジェクトが保持されていません。変数に null 値を割り当てると、変数の内容をクリアできます。 Jscript では、null は 0 に等しくないことに注意してください (C や C とは異なります)。 Jscript の typeof 演算子は、null 値を null 型ではなく Object 型として報告することにも注意してください。この潜在的な混乱は、下位互換性のためのものです。 未定義のデータ型 次の状況では、未定義の値が返されます: オブジェクトのプロパティが存在しない、変数は宣言されていますが、値が割り当てられていません。
変数の型が「未定義」であるかどうかを確認することはできますが、変数を未定義と比較して存在するかどうかをテストすることはできないことに注意してください。次のコード例では、プログラマが変数

// このメソッドは機能しません
if (x == unknown)
// 何かを実行します
/ / このメソッドも機能しません - 確認する必要があります
// 文字列 "未定義"
if (typeof(x) == unknown)
// いくつかの操作を実行します
// このメソッドは有効です
if (typeof(x) == "unknown ")
// 特定の操作を実行します


未定義の値を null と比較することを検討してください。
someObject.prop == null;
次の状況では、比較結果は true になります。
プロパティ someObject.prop に null 値が含まれている場合、
プロパティ someObject.prop が存在しない場合。
オブジェクトのプロパティが存在するかどうかを確認するには、new in 演算子を使用できます。
if ("prop" in someObject)
// someObject には属性 'prop' があります
JavaScript では、null は未定義と同じは、かつては混乱を招くものでした。次の分析は、これをより明確に理解するのに役立ちます (または、より混乱します):
- null はキーワード、未定義はグローバル オブジェクトのプロパティ
- null はオブジェクト (プロパティを持たない空のオブジェクト)およびメソッド); unknown は、unknown 型の値です。次のコードを試してください:
document.writeln(typeof null); //return object
document.writeln(typeof unknown)
- オブジェクト モデルでは、すべてのオブジェクトは Object Or です。 null オブジェクトを除くそのサブクラスのインスタンス:
document.writeln(null instanceof Object); //return false
- null は未定義と「等しい (==)」ですが、「一致」(==) しません。 =)" in un 未定義:
document.writeln(null == unknown); // true を返す
document.writeln(null === unknown); // false を返す
- 操作中 null とunknown は false に型変換できますが、false にはなりません。 return false
document.writeln(unknown==false) //return false
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。