このガイドでは、 ヌル と 未定義 JavaScriptの値。これら2つの値の違いを知ることは、バグのないコードをデバッグおよび作成するために重要です。
Outlook2016でメールを受信しない
ブラウザコンソールを使用して、このガイドで説明されているコードサンプルをフォローまたは試してください。
ヌル値と未定義値の同等性の比較
JavaScriptでは、 ヌル は、オブジェクト値が意図的に存在しないことを示すために使用されるプリミティブ値ですが、 未定義 値が割り当てられていない変数のプレースホルダーとして機能するプリミティブ値です。
ヌル と 未定義 JavaScriptの等価演算子を使用して比較すると、値は等しくなります。
等式演算子を使用します( == )比較する ヌル と 未定義 JavaScriptでは値は同じです。
ブラウザコンソールを開き、次のコードを入力して、を押します。 入力。
null == undefined
出力は次のようになります。返されるブール値は NS 単に2つの値が等しいことを意味します。
詳細:JavaScriptで変数を宣言する方法
厳密な同等性の比較
JavaScriptには恒等演算子もあります( === )、等式演算子( == )。
恒等演算子は、比較される値の基になるタイプが同じであるかどうかをチェックすることによって、さらに一歩進んでいます。これは基本的に、2つの値が等しい場合でも、基になるタイプが異なる場合、それらは同一または厳密に等しくない可能性があることを意味します。
厳密な等号をテストするには、以下のようにトリプル等号を使用します。
null === undefined
上記のコマンドの結果は、ブール値を与えます。 NS つまり、2つの値は同じでも同じではありません。
ヌルおよび未定義のタイプを見つける
組み込みのJavaScript関数を使用する typeof() 値の基になる型を見つけるため。この関数は、タイプを検索する値の単一のパラメーターを取ります。
関連している: 究極のJavaScriptチートシート
typeof(null)
null値はタイプです 物体 以下の出力からわかるように。
で同様のテストを実行する 未定義 値はあなたに結果を与えるでしょう 未定義 。
typeof(undefined)
数字の操作
より多くの違いを探るには、で数のテストを実施してください ヌル と 未定義 値。値が数値の場合、数値演算を実行できることを意味します。
JavaScriptで値が数値であるかどうかをテストする主な方法は2つあります。
1.を使用して isFinite() 関数-テスト中の値が数値の場合、関数は次の値を返します。 NS ;それ以外の場合は戻ります NS 。
2.を使用して isNaN() 関数-テスト中の値が数値の場合、次の値を返します。 NS ; それ以外の場合は戻ります NS 。
ノート : isNaN 'is Not aNumber'の略です。
物事を簡単にするために、このガイドでは isFinite() 値が数値かどうかをテストする関数ですが、お気軽に試してみてください isNaN() 関数。これらの関数は両方とも、数値テストを実行する値をパラメーターとして受け取ります。
isFinite(null)
結果は NS 、 意味 ヌル タイプの値です 番号 JavaScriptで。一方、同じテストを実施する 未定義 戻り値 NS 。
isFinite(undefined)
タイプ強制
JavaScriptは緩く型付けされた言語であるため、数学演算を実行すると、JavaScriptは結果を必要な型に自動的に変換します。
残念ながら、一般に型強制と呼ばれるこの自動変換は、それに伴って多くの驚きをもたらす可能性があります。
で次の数値演算を実行します ヌル と 未定義 ブラウザコンソールで。
1 + null
3 * null
1 + undefined
3 * undefined;
ご覧のとおり、でいくつかの数値操作を実行できます ヌル 値を保持しない数値であるため、値。したがって、ゼロのように扱われます。注意してください ヌル と等しくない 零 JavaScriptではありますが、この場合はどういうわけかそのように扱われます。
の数値演算 未定義 値は結果として NaN (数値ではありません)値。注意深く扱わないと、実行時にこれが発生する可能性があります。
ランタイムバグの回避
の十分な理解 ヌル と 未定義 値は、本番コードの実行時のバグを回避するために不可欠です。関連するバグ 未定義 値はデバッグが難しい場合があるため、避けるのが最善です。
JavaScriptにコンパイルされる強い型のコードにはTypeScriptの使用を検討してください。 TypeScriptでは、コンパイル時にコードがチェックされ、本番コードの実行時のバグが最小限に抑えられます。
共有 共有 つぶやき Eメール 関連トピック- プログラミング
- JavaScript
- コーディングのヒント
Mwizaは専門職によってソフトウェアを開発し、Linuxとフロントエンドプログラミングについて幅広く執筆しています。彼の興味のいくつかには、歴史、経済学、政治、企業建築が含まれます。
MwizaKumwendaのその他の記事ニュースレターを購読する
ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。
購読するにはここをクリックしてください