この記事では、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 が動作しない問題の解決方法 (ブラウザでコンパイルできない)
オリンピック期間中にIE8ベータ2がリリースされ、英語版のリリースに合わせて中国語版も第一波でリリー...
この記事では、Element-uiを使用してメニューナビゲーションを実装するVueの具体的なコードを...
Alibaba Cloud ホストを購入したばかりで、その速度を試すのが待ちきれませんでした。しか...
パブリック関数 json_product_list($where, $order){ グローバル ...
さっそく、コードを見てみましょう(初心者:特に言うことはありません) <!DOCTYPE ht...
あなたが作成するものこの新しいチュートリアルでは、CSS と JavaScript を使用して、レス...
この記事では、vueの大画面表示適応の具体的なコードを参考までに紹介します。具体的な内容は以下のとお...
UDP の理論については詳しく説明しません。UDP に関する HelloWorld プログラムを紹介...
目次1. データベースとは何ですか? 2. データベースの分類は? 3. データベースとデータ構造の...
サブフォルダーの末尾にスラッシュがない場合、2 つの HTTP リクエストが生成され、効率に影響しま...
以前にインストールされたバージョンのデータベースをアンインストールする方法については、この記事を参照...
HTML を使用して動的な Web クロックを作成します。コードは次のとおりです。 <!DOC...
grubの起動時間を変更するためのオンライン検索は基本的に/etc/default/grubを変更す...
この記事では、例を使用して、MySQL イベントの変更 (ALTER EVENT)、イベントの無効化...
この記事は、参考のためにMySQL 8.0.19のインストールと設定のグラフィックチュートリアルを記...