この記事では、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 が動作しない問題の解決方法 (ブラウザでコンパイルできない)
序文Mac システムのターミナルでファイルの権限を変更するには、Linux の chmod コマンド...
目次テーブルを作成するデータベース ファイルを表示します。入れるクエリ消去補足:Mysqlは月テーブ...
最近、宿題をしているときに、iframe を使用せずにページをネストする必要があったため、jquer...
コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...
準備1. マスターとスレーブのデータベースのバージョンは一致している必要があります2. マスターデー...
フロントエンドの開発過程で、チェックボックスが必要な状況が発生しました。ユーザー操作の利便性を考慮し...
以前にも紹介しました: docker (一般的なアプリケーションのデプロイ): docker dep...
Windows10にmysqlをインストールする1. 公式サイトからMySQLをダウンロードするウェ...
.net 開発に関しては、Microsoft の SQL Server データベースに精通しており、...
1つ。 Nexus プライベート サーバーを構築する理由は何ですか?社内の開発メンバーは全員外部ネッ...
この記事では、例を使用して MySQL ビューの原理と使用方法を説明します。ご参考までに、詳細は以下...
目次序文需要分析MySQL ユーザー変数累積計算にMysqlユーザー変数を使用する要約するこの記事で...
目次プロジェクトにmockjsをインストールするVueプロジェクトでmockjsを使用する基本的なプ...
この記事では、jQueryブリージングカルーセル制作原理の具体的なプロセスを参考までに紹介します。具...
接続クエリ:これは、2 つのクエリ (またはテーブル) の各行をペアで接続した結果です。つまり、1 ...