前の言葉
一般的なプログラミング言語では、NULLのみが空を意味しますが、JavaScriptデザイナーのBrendan Eichは未定義を設計しました。この記事では、javascriptに未定義とnullを詳細に紹介します
JavaScriptが1995年にJavaのように生まれたときの歴史的理由は、Nullだけが「なし」を示す値として設定されました。 C言語の伝統によれば、nullは自動的に0に変わるように設計されています
ただし、JavaScriptのデザイナーBrendan Eichは、これで十分ではないと考えています。まず、NullはJavaのようなオブジェクトとして扱われます。ただし、JavaScript値は、プリミティブタイプとオブジェクトタイプの2つのカテゴリに分けられます。ブレンダン・アイヒは、「なし」を意味する値はオブジェクトではなく最善であると考えています。第二に、JavaScriptの初期バージョンにはエラー処理メカニズムが含まれていませんでした。データ型の不一致が発生すると、多くの場合、型を自動的に変換するか、静かに失敗します。ブレンダン・アイヒは、nullが自動的に0に変わると、エラーを見つけるのは難しいと考えています
したがって、ブレンダン・アイヒは別の未定義を設計しました。このように区別します。Nullは、「None」を表すオブジェクトであり、数値に変換されると0です。未定義は、数値に変換された場合のnanである「なし」を表す元の値です
ただし、現在、NULLと未定義は基本的に同義語であり、どちらも原始的なタイプであり、わずかな違いしかありません。
定義されていないタイプには1つの値のみがあり、未定義です。宣言された変数が初期化されていない場合、変数のデフォルト値は未定義です。したがって、一般的に、未定義とは、変数が初期化されないことを意味します
var test; // undefinedconsole.log(test == undefined); // truevar test = undefined; // undefined
宣言されていない変数の場合、タイプオペレーターを使用してデータ型を検出すると、1つの操作のみを実行できますが、厳密なモードでエラーが発生します。
typeof(test); // undefined
【シーンの外観】
【1】宣言されていない値の変数
【2】オブジェクトに存在しない属性を取得します
【3】返品値なしの機能の実行結果
【4 function関数パラメーターは渡されません
【5】void(式)
var i; console.log(i); // undefinedvar o = {}; console.log(op); // undefinedfunction f(){}; console.log(f()); // undefinedfunction f(x){return x;} console.log(f());【タイプ変換】
Boolean(未定義):falsenumber(未定義):ナンストリング(未定義):「未定義」
ヌル
nullタイプには、nullの値は1つだけです。 Nullは、JavaScript言語のキーワードです。特別な値を表し、「ヌル値」を説明するためによく使用されます。
論理的には、null値は空のオブジェクトポインターを表します
[注] nullは空のオブジェクトポインターであり、[]は空の配列で、{}は空のオブジェクトで、3つは異なります
console.log(typeof null); // 'object'
Nullと未定義は異なりますが、どちらも「価値のある空」を表し、Nullは「Null Value」を表し、未定義は「未定義」を表します。多くの場合、2つは交換可能です。裁判官平等オペレーター== 2つは等しいと思います
console.log(null == undefined); // true
実際、未定義でヌルはコンストラクタータイプではないため、プロパティや方法はありません。使用。 []両方の値のメンバーまたはメソッドにアクセスするには、タイプエラーが生成されます。
【タイプ変換】
Boolean(null):falsenumber(null):0string(null): 'null'
JavaScriptタイプシステムに関する上記の記事 - 未定義でnullは、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。