ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript_javascript スキルにおける null と unknown の違いの紹介
JavaScript には、情報の欠如を表す 2 つの特別な値、null と unknown があります。個人的には、これら 2 つの特別な値の違いは次の観点から理解できると思います:
1.null は、情報 (以前に値が割り当てられた変数など) を格納するコンテナーを表しますが、コンテナー内のコンテンツは空です。
2. 未定義は、情報を格納するコンテナがないことを意味します。
JavaScript の null は、他のほとんどのプログラミング言語の null と同じであり、JavaScript では情報値が空であることを示すために使用され、次の状況では式は未定義の結果を返します。
1. 値が割り当てられていない変数。
2. オブジェクトに存在しないプロパティ値にアクセスします。
3. 配列内に存在しないメンバーにアクセスします。
4. return ステートメントを使用せずに関数を呼び出します。
5. return 文が空の関数 ("return;") を呼び出します。
実際、Infinity や NaN と同様に、unknown は JavaScript のグローバル変数であり、ECMAScript 3 では他の値を割り当てることもできます。 ECMAScript 5 ではこのエラーが修正され、未定義の変数が読み取り専用になります。
null と未定義の比較には、=== 合同演算子を使用できます。通常の == 演算子を使用する場合、null と unknown は同等です:
プログラミング中に、変数に null 値を割り当てる必要がある場合は、通常、未定義ではなく null を使用します。理由は次のとおりです。
1. 未定義は、一般に、システム レベルおよびエラー報告レベルでの情報が不足していると考えられます。
2. Null は一般に、プログラミング レベルおよび論理演算レベルで空の情報値とみなされます。
プログラムに型変換が含まれる場合、数値型に変換するとき、null と unknown の結果は異なります。
1. 未定義を数値に変換した結果は NaN になります。
2. null を数値に変換した結果は 0 になります。
空の文字列と空の配列を数値に変換した結果も 0 になることに注意してください。
JavaScript で「なし」を表す 2 つの値が設計されている理由については、Ruan Yifeng のブログ投稿を参照してください。
実験
次の実験用コードでは、式の結果はすべて未定義です:
this.x = x;
}
var s = 新しいサンプル();
console.log(s.x)
console.log(s.notExistVariable);
console.log(n[8]);
//この関数には戻り値がありません
}
console.log(test());
戻る;
}
console.log(test2());