1. オブジェクトのプロパティ1.1 属性表記
サンプルコードは次のとおりです。 let name = '一碗の周' let job = 'フロントエンドエンジニア' // 属性表記は変数に直接書き込まれます。let obj1 = { 名前、 仕事、 言う私() { console.log(名前) } } // let obj2 = { と同等 名前: 名前、 仕事: 仕事、 sayMe: 関数() { console.log(名前) } } コンソールにログ出力します。 2. プロパティ名を計算する
// 方法 1 obj.foo = true; // 方法2 obj['a'+'bc'] = 123; . 演算子には大きな制限があります。たとえば、first name などの属性は角括弧を使用してのみ定義できます。括弧アプローチを使用すると、識別子を使用すると構文エラーになる変数または文字列リテラルを使用してプロパティを定義できます。 例えば: 人 = {} とします。 lastName = "姓"; person["first name"] = "Nicholas"; person[lastName] = "ザカス"; console.log(person["first name"]); // "ニコラス" console.log(person[lastName]); // "ザカス" これら 2 つのメソッドは、角括弧を使用してのみ定義できます。 ES5 では、文字列リテラルをオブジェクトリテラルのプロパティとして使用できます。次に例を示します。 人 = { 「名」:「ニコラス」 }; console.log(person["first name"]); // "ニコラス" ただし、属性名が変数内に存在する場合や計算する必要がある場合は、オブジェクトリテラルを使用して属性を定義することはできません。 ES5 より前では、プロパティ名が変数であるか、動的に計算される必要がある場合は、object.[変数名] を介してのみアクセスできます。 p = {とします 名前:「李思」 年齢: 20 } attName = 'name' とします。 console.log(p[attName]) //ここでattNameは変数名を表します。 // 李思 さらに、属性名を動的に計算するこの方法は、リテラルでは使用できません。 attName = 'name' とします。 p = {とします attName : '李四', // ここで attName は属性名であり、p の各レベルで属性名 attName を持つ属性を定義することと同じです。 年齢: 20 } console.log(p[attName]) // 未定義
attName = 'name' とします。 p = {とします [attName]: 'Li Si', // 変数 attName を参照します。これは、age: 20というnameという名前の属性を追加することと同じです。 } console.log(p[attName]) // 李斯 オブジェクトリテラル内の括弧は、プロパティ名が評価されることを示し、その内容は文字列として評価されます。 3.オブジェクトメソッド3.1Object.is() メソッド
厳密な等価演算子により、NaN はそれ自身と等しくなくなり、+0 は -0 と等しくなります。 ECMAScript 2015 では、この問題を解決するために「 構文構造は次のとおりです。 Object.is(値1, 値2); パラメータの説明:
ブール値を返します。 サンプルコードは次のとおりです。 console.log(+0 === -0); //true console.log(NaN === NaN); // 偽 console.log(Object.is(+0, -0)); // 偽 console.log(Object.is(NaN, NaN)); // 真 3.2Object.assign() メソッド
構文構造は次のとおりです。 Object.assign(ターゲット、...ソース) パラメータの説明:
ターゲット オブジェクトのプロパティに同じキーがある場合、そのプロパティはソース オブジェクトのプロパティによって上書きされることに注意してください。同様に、後続のソース オブジェクトのプロパティは、先行するソース オブジェクトのプロパティをオーバーライドします。 サンプルコードは次のとおりです。 ソース = { 名前:「周の一杯」 仕事: 「フロントエンドエンジニア」 } ターゲットを{}とします // 1 つ以上のソース オブジェクトからターゲット オブジェクトにすべての列挙可能なプロパティの値を割り当てるには、assign() メソッドを使用します。 オブジェクト.assign(ターゲット、ソース) console.log(ターゲット); // ディープコピーであるかどうかを確認する target.name = 'a bowl of porridge' console.log(target, source); //{ name: '一碗周', job: 'Front-end siege lion' } { name: '一碗粥', job: 'Front-end siege lion' } 4.スーパーキーワードthis キーワードは常に関数が配置されている現在のオブジェクトを参照することがわかっています。ECMAScript // プロトタイプオブジェクトとして使用するオブジェクトを定義します。const proto = { v: 「こんにちは」 } // オブジェクトを定義する const obj = { v: '世界'、 プリントV1() { コンソールにログ出力します。 }, // superキーワードを使用する printV2() { コンソールにログ出力します。 } } //objオブジェクトのプロトタイプをprtotに変更します オブジェクト.setPrototypeOf(obj, proto) // このobj.printV1()の使用法 // 世界 // super obj.printV2() の使い方 // こんにちは
5. オブジェクト拡張演算子オブジェクト スプレッド演算子 ( サンプルコードは次のとおりです。 // オブジェクト拡張演算子 (...) は、パラメーター オブジェクトのすべてのトラバース可能なプロパティを抽出し、現在のオブジェクトにコピーするために使用されます。 obj = { 名前:「周の一杯」 仕事: 「フロントエンドエンジニア」 } 新しいオブジェクトを = { ...オブジェクト } console.log(newObj); // { name: 'Yiwan Zhou', job: 'フロントエンドエンジニア' } // ディープコピーであるかどうかを確認する newObj.name = 'A bowl of porridge' console.log(obj, newObj); // { name: '一碗周', job: 'Front-end siege lion' } { name: '一碗粥', job: 'Front-end siege lion' } 配列は特殊なオブジェクトなので、オブジェクトスプレッド演算子は配列にも使用できます。 arr = [1, 2, 3, 4, 5]とします。 obj = { …あぁ } console.log(obj); // { '0': 1, '1': 2, '2': 3, '3': 4, '4': 5 } スプレッド演算子の後にオブジェクトが続かない場合は、自動的にオブジェクトに変換されます。 コンソール.log( { ...1 // {...Object(1)} と同等 } ); // {} コンソール.log( { ...true // {...Object(true)} と同等 } ); // {} コンソール.log( { ...undefined // {...Object(undefined)} と同等 } ); // {} コンソール.log( { ...null // {...Object(null)} と同等 } ); // {} ECMAscript の新機能オブジェクトの紹介に関するこの記事はこれで終わりです。より関連性の高い ECMAscript オブジェクトの紹介コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。皆様、今後とも 123WORDPRESS.COM を応援してください。 以下もご興味があるかもしれません:
|
<<: Dockerコンテナとホストマシン間の8時間の差の問題を解決する
>>: ラベルとボタンを削除し、背景画像の点線/影を追加すると完璧な解決策になります
Docker には多くのログ プラグインがあります。デフォルトでは json-file を使用します...
C++でMySQLに接続する際の参考情報です。具体的な内容は以下のとおりです。 MySQLCon ク...
ビュー: MySQL のビューはテーブルと多くの類似点があります。ビューも複数のフィールドと複数のレ...
1. はじめにプロジェクトではMySQLを使用しています。インターネット上の例を参考にインストール...
目次1.1 前提条件としてのJava環境1.2 Zookeeperのインストールと設定1.3 Kaf...
目次1. 環境の紹介2. MySQL-8.0.19をインストールする3. MySQLを設定する1. ...
困り果てて、ふと、私がよく行くSinaのタッチスクリーン版はどうやって作られているのだろう?と考えま...
最近、個人のウェブサイトを書き直しました。Alibaba Cloudで新しいサーバーを購入しました。...
必要最近、Node オンライン サービスを移行する必要があったため、2 つの新しいオンライン サーバ...
目次MySQL Load Dataの多様な用途1. LOAD の基本的な背景2. 基本パラメータをロ...
1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...
目次1:mysql実行プロセス1.1: コネクタ1.2: キャッシュ1.3: アナライザー1.4: ...
ウェブサイトの場合、ユーザビリティとは、ユーザーが必要な情報を効果的に見つけたり、タスクを完了したり...
1. イベント委任とは何ですか?イベント委譲: イベントバブリングの特性を利用して、子要素に登録すべ...
var numA = 0.1; var numB = 0.2; アラート(numA + numB)...