ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript_javascript スキルにおける null と unknown の違いの紹介

JavaScript_javascript スキルにおける null と unknown の違いの紹介

WBOY
WBOYオリジナル
2016-05-16 16:22:311062ブラウズ

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 は同等です:


コードをコピー コードは次のとおりです:
console.log(null == 未定義);//true
console.log(null === 未定義);//false

プログラミング中に、変数に null 値を割り当てる必要がある場合は、通常、未定義ではなく null を使用します。理由は次のとおりです。

1. 未定義は、一般に、システム レベルおよびエラー報告レベルでの情報が不足していると考えられます。

2. Null は一般に、プログラミング レベルおよび論理演算レベルで空の情報値とみなされます。

プログラムに型変換が含まれる場合、数値型に変換するとき、null と unknown の結果は異なります。

1. 未定義を数値に変換した結果は NaN になります。

2. null を数値に変換した結果は 0 になります。

空の文字列と空の配列を数値に変換した結果も 0 になることに注意してください。

JavaScript で「なし」を表す 2 つの値が設計されている理由については、Ruan Yifeng のブログ投稿を参照してください。

実験

次の実験用コードでは、式の結果はすべて未定義です:


コードをコピー コードは次のとおりです:
var a;
console.log(a);
関数サンプル(x){

this.x = x;
}
var s = 新しいサンプル();
console.log(s.x)
console.log(s.notExistVariable);

var n = [2,3,4];

console.log(n[8]);

関数テスト(){

//この関数には戻り値がありません
}
console.log(test());

関数 test2(){

戻る;
}
console.log(test2());

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