ホームページ > 記事 > ウェブフロントエンド > JavaScriptのundefinedとnullの理解を詳しく解説
ここで、JavaScript の型システム (unknown と null) について包括的に理解してもらいます。今からそれを皆さんと共有し、皆さんの参考にしてください。
前に述べたように
一般的なプログラミング言語はnullのみを表現しますが、JavaScriptの設計者であるブレンダン・アイヒは未定義を設計し、間違いなくプログラムの複雑さを増大させますが、これにはいくつかの理由があります。この記事では、JavaScript における未定義と null について詳しく紹介します
歴史的な理由: JavaScript が 1995 年に誕生したとき、当初は Java と同様に、「なし」を表す値として null のみが設定されていました。 C 言語の伝統によれば、null は自動的に 0 に変換されるように設計されています。しかし、JavaScript 設計者の Brendan Aich は、2 つの理由からこれでは十分ではないと感じています。まず、null は Java と同じようにオブジェクトとして扱われます。ただし、JavaScript の値はプリミティブ型とオブジェクト型の 2 つのカテゴリに分類され、「なし」を表す値はオブジェクトではない方がよいと考えています。第 2 に、JavaScript の初期バージョンにはエラー処理メカニズムが含まれておらず、データ型の不一致が発生すると、型が自動的に変換されるか、警告なしに失敗することがよくありました。 Brendan Eich は、null が自動的に 0 に変換されると、エラーを見つけるのが難しくなるだろうと考え、別の未定義を設計しました。 null は「なし」を表すオブジェクトであり、数値に変換すると 0 になります。未定義は「なし」を表すプリミティブ値で、数値に変換すると NaN になります。ただし、現在は null です。と undefine は基本的に同義であり、いくつかの微妙な違いがあるだけで、すべてプリミティブ型です
unknown Undefined 型には、未定義の値が 1 つだけあります。宣言された変数が初期化されていない場合、変数のデフォルト値は未定義です。一般に、未定義は変数が初期化されていないことを意味します
var test;//undefined console.log(test == undefined);//true var test = undefined;//undefined
まだ宣言されていない変数に対して実行できる操作は 1 つだけです
データ型を検出するには typeof 演算子を使用しますが、厳密モードではエラーが発生します。 errortypeof(test);//undefined【シナリオ出現】
【1】未代入変数宣言
【2】オブジェクトの存在しないプロパティを取得 【3】戻り値のない関数の実行結果
【4】関数のパラメータは渡されません
【5】void(expression)
var i; console.log(i);//undefined var o = {}; console.log(o.p);//undefined function f(){}; console.log(f());//undefined function f(x){return x;} console.log(f());//undefined console.log(void(0));//undefined
【型変換】
Boolean(undefined): false Number(undefined): NaN String(undefined): 'undefined'
null Null型は値を1つだけ持ちます。ヌル。 null は JavaScript 言語のキーワードであり、特別な値を表し、「null 値」を説明するためによく使用されます
論理的な観点から見ると、null 値は null オブジェクト ポインターを表します【注意】null は null オブジェクト ポインターです。 、 [] は空の配列、{} は空のオブジェクト、この 3 つは異なります
console.log(typeof null);//'object'
null と unknown は異なりますが、どちらも「値の空き」を表し、null は「空の値」を表し、unknown は「未定義」を表します」。多くの場合、この 2 つは交換可能です。等価演算子 == は、この 2 つが等しいとみなします
console.log(null == undefined);//true
実際、未定義と null はコンストラクター型ではないため、これら 2 つの値のメンバーにアクセスするためのプロパティとメソッドはありません。メソッドは型エラーを生成します
[型変換]Boolean(null): false Number(null): 0 String(null): 'null'
以上は、皆さんのためにまとめたもので、将来的に皆さんのお役に立てれば幸いです。
関連記事:
JavaScript 関数式 (グラフィック チュートリアル)JavaScript の継承メカニズム (詳細な回答、グラフィック チュートリアル)
Javascript を使用したクラスとオブジェクトの作成 (グラフィック チュートリアル)
以上がJavaScriptのundefinedとnullの理解を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。