この記事では、4 つの判断方法についてまとめます。 1. 型
// 文字列 console.log(typeof('lili')); // 文字列 // 数値 console.log(typeof(1)); // 数値 // ブール値 console.log(typeof(true)); // ブール値 // 未定義 console.log(typeof(undefined)); // 未定義 // オブジェクト console.log(typeof({})); // オブジェクト // 配列 console.log(typeof([])); // オブジェクト // ヌル console.log(typeof(null)); // オブジェクト // 関数 console.log(typeof(() => {})); // 関数 // シンボル値 console.log(typeof(Symbol())); // シンボル 2. インスタンス
オブジェクトインスタンスコンストラクタ 定数arr = [1, 2]; // オブジェクトのプロトタイプが配列のプロトタイプチェーン内にあるかどうかを確認します console.log(arr instanceof Object); // true // 配列のプロトタイプ arr const proto1 = Object.getPrototypeOf(arr); コンソールログ(proto1); // [] // 配列のプロトタイプのプロトタイプ arr const proto2 = Object.getPrototypeOf(proto1); コンソールログ(proto2); // [] //オブジェクトのプロトタイプ console.log(オブジェクトプロトタイプ); // arr のプロトタイプが Object のプロトタイプと等しいかどうかを確認します console.log(proto1 === Object.prototype); // false // arr のプロトタイプが Object のプロトタイプと等しいかどうかを確認します console.log(proto2 === Object.prototype); // true 3. コンストラクターこの判断方法は、実はプロトタイプ、コンストラクタ、インスタンスの関係に関係しています。より詳しい説明は後ほど行います。以下では、この 3 つの関係を簡単に理解するだけで十分です。 関数 (コンストラクター) を定義すると、JS エンジンはそれに 定数val1 = 1; console.log(val1.constructor); // [関数: 数値] 定数val2 = 'abc'; console.log(val2.constructor); // [関数: 文字列] val3 が true である。 console.log(val3.constructor); // [関数: ブール値] この方法ではデータ型を判別できますが、次の 2 つの欠点があります。
4.toString() この型によって返されるさまざまな変数型の結果は次のとおりです。 この方法を使用すると、型識別関数を簡単に構築できます。コードは次のとおりです。 関数タイプ(ターゲット) { const ret = typeof(ターゲット); 定数テンプレート = { "[オブジェクト配列]": "配列", "[オブジェクト オブジェクト]":"オブジェクト", "[オブジェクト番号]":"番号 - オブジェクト", "[オブジェクト ブール値]":"ブール値 - オブジェクト", "[オブジェクト文字列]":'文字列オブジェクト' } if(ターゲット === null) { 'null' を返します。 } そうでない場合(ret == "オブジェクト"){ const str = Object.prototype.toString.call(target); テンプレート[str]を返します。 } それ以外{ ret を返します。 } } console.log(type({})); // オブジェクト console.log(type(123)); // 数値 console.log(type('123')); // 文字列 以上で、JS における 4 つのデータ型判定方法についての説明は終了です。JS におけるデータ型判定方法についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Docker ネットワークの原理とカスタム ネットワークの詳細な分析
>>: scss で mixin が動作しない問題の解決方法 (ブラウザでコンパイルできない)
Linuxにunzipコマンドがない問題の解決策unzipコマンドを使用して.zipファイルを解凍す...
状況の説明: データベースが異常に起動およびシャットダウンしたため、サービスを再度起動したときに「起...
長い間ウェブサイトを作ってきましたが、入力時のnameとidの違いがまだわかりません。最近jQuer...
目次nginxとは1. 必要な依存関係をダウンロードする2. nginxの圧縮パッケージをダウンロー...
最近、プロジェクトで問題が発生しました。サーバー側のプログラムが突然クラッシュして終了しました。クラ...
この記事では、MySQL クラスター化インデックスのページ分割を例を使って説明します。ご参考までに、...
今日、null 値をテストしていたところ、小さな問題が見つかりました。ここに記録しました。以前にも遭...
フロントエンド開発者としては、IEの落とし穴は避けて通れません。他のブラウザはいいのにIEは壊れてい...
Ubuntu では中国語入力方法の解決策はありません。仮想マシンや Ubuntu システムをインスト...
目次1. はじめにII. 監視対象2.1 なぜオブジェクトを監視する必要があるのですか? 2.2 デ...
序文:テーブルをクリアしたいときは、truncate ステートメントをよく使用します。ほとんどの場合...
ノードにおけるhttpの役割は何ですか? httpモジュールの役割は、サーバーの作成と記述を支援する...
イメージは、GitHub と同様に Docker パブリック リポジトリに直接簡単にプッシュできます...
クールなフロントエンドページのランダムQRコード検証を参考までに共有します。具体的な内容は次のとおり...
Crontab は定期的な実行を設定するために使用されるコマンドです。そのデーモン プロセスは cr...