Script House はこれまで同様の記事を公開できませんでした
JavaScript の null と未定義の違いの分析
JavaScript 未定義、Null 型と NaN 値の違い
最初に未定義について話しましょう:
JavaScript の変数は弱く型指定されているため (これについてはこれ以上説明する必要はないと思います)、変数を宣言するときに var キーワードを使用するだけで済みます。 。 C のような厳密に型指定された言語の場合、変数の宣言時に初期値が指定されていない場合、たとえば、int 変数のデフォルト値は 0 になります。しかし、JavaScript のような弱い型指定言語では、そのような変数にどのようなデフォルト値を与えるべきかを決定する方法がありません。たとえば、変数
var
を宣言する場合、それに false を与えるべきでしょうか。 0、それとも ' '?
型がないため判断できません。 Javascript では、その寿命後に初期値が与えられない変数には、未定義を与えます。ただし、この変数が宣言されていることが前提となります。宣言されていない識別子である場合は、エラーが発生します。以下のコードを見てください。 / /unknown
alert(v2); //エラーレポート
コードをコピーします
コードは次のとおりです。
var v1 = 1; v2 = true ;
alert(typeof v1); //数値
v2 = null; /object
Javascript では、null が特殊なオブジェクト型の値を表すことがわかります。これは、識別子をオブジェクト型として宣言したい場合に使用されます。当面は渡さないでください。その後、後で使用するために null に初期化できます。
必ずしも完全に正しいとは限りません。簡単に言えば、宣言後に初期値が指定されていない限り、オブジェクト型が null 参照の概念を表現する場合、その変数は未定義になります。 null で表されます。
以下はいくつかの追加です:
null: 値がないことを意味します。
unknown: 未宣言の変数、または宣言されたが値が割り当てられていない変数、または変数を意味します。それはオブジェクトのプロパティが存在しません。 == 演算子は、2 つを等しいものとして扱います。 2 つを区別したい場合は、=== または typeof 演算子を使用します。
両方を含めるには if (!object){} を使用します
追加: 2006.12.6
コードをコピー
コード
var obj = "aaa"; var nullobj;
if (obj == null || obj == unknown || (!obj) ){
alert("obj が null");
}
if (nullobj == null){
未定義と「未定義」に関する追加情報 (2007/1/30):
JScript で未定義を示すために使用される未定義識別子は何を意味しますか? それは「未定義」 (「を含む)」と同じです。違いとつながりは?変数との比較に unknown を使用できる場合と、使用できない場合があるのはなぜですか?
アンダーファインと「未定義」の違いは一目でわかります。一般的な理解では、未定義は JScript によって提供される「キーワード」であると考えられますが、引用符内の内容が未定義と同じに見えることを除けば、「未定義」は間違いなく文字列です。未定義と「未定義」の違いは非常に明らかですが、それらの関係も密接です。
JScript マニュアルをよく読んでください。実際、この unfined は「定義された」グローバル値であり、文字通りの意味で表現される未定義の値ではありません。次のコード例を見てみましょう。非常に興味深いものです:
コードをコピーします
コードは次のとおりです:
< スクリプト言語="JavaScript">
alert(未定義)
実行結果は次のとおりです:
上記のコードを少し変更して、typeof 呼び出しを追加して確認してみましょう: