最初に未定義について話しましょう:
JavaScript の変数は弱く型指定されているため、変数を宣言するときに var キーワードのみを使用する必要があります。 C のような厳密に型指定された言語の場合、変数の宣言時に初期値が指定されていない場合、たとえば、int 変数のデフォルト値は 0 になります。しかし、JavaScript のような弱い型指定言語では、たとえば変数
を宣言した場合、そのような変数にどのようなデフォルト値を与えるかを決定する方法がありません。var v1;
false、0、または '' のどれにするべきですか?
型がないので判断できません。 Javascript では、その寿命後に初期値が与えられない変数には、未定義を与えます。ただし、この変数が宣言されていることが前提となります。宣言されていない識別子である場合は、エラーが発生します。以下のコードを見てください。
vo="vo";//var キーワードを使用しない場合は、グローバル変数が作成されます。値を割り当てないと、次のようにエラーが報告されます。
//v1;//エラーが報告されます
var v2;//未定義
var v3="";//null
アラート(音声)
//アラート(v1);//
アラート(v2);
アラート(v3);
null について話しましょう:
JavaScript には、数値、文字列、ブール値、オブジェクトといったいくつかの基本的な型があります。オブジェクト型変数には、オブジェクトのインスタンスである場合と、null 参照である場合の 2 つの状況があります。Java などのオブジェクト指向言語に精通している人なら簡単に理解できるはずです。理解する。どちらの場合も、タイプは Object です。 Javascript の変数は、値を割り当てる場合にのみ使用されます
次のように、そのタイプを決定します。
var v1 = 1; var v2 = true; alert(typeof v1); //number alert(typeof v2); //boolean v2 = new Date(); alert(typeof v2); //object v2 = "str"; alert(typeof v2); //string v2 = null; alert(typeof v2); //object
単純に言うと、すべての変数について、宣言後に初期値が指定されていない限り、null 参照の概念を表現するために Object 型が使用されている場合、それは未定義になります。ヌルによって。
null: 値がないことを意味します。
未定義: 宣言されていない変数、宣言されているが値が割り当てられていない変数、または存在しないオブジェクト プロパティを示します。 == 演算子は、2 つを等しいものとして扱います。 2 つを区別したい場合は、=== または typeof 演算子を使用します。両方を含めるには if (!object){} を使用します。