ホームページ > 記事 > ウェブフロントエンド > ES6 オブジェクトの割り当てとシンボル
今回は ES6 オブジェクトの代入と Symbol についてご紹介します。 ES6 オブジェクトの代入と Symbol を使用する際の 注意点 については、以下のとおりです。
//es6语法允许变量直接为对象的赋值,快捷方便; let liu="呵呵哒"; let long="赖皮哒"; let a={liu,long}; console.log(a) ; //es6语法允许为对象构建key值; let key='skill'; var obj={ [key]:'web'} console.log(obj.skill); //es6语法允许直接合并对象; let s={liuliu:"wowoda",age:20}; let ss={long:"赖皮"}; let sss=Object.assign(s,ss); console.log(sss); //object.is()方法判断是否相等;2つの等号は比較中に
型変換を自動的に実行しますが、3つの等号は型が異なる場合は直接falseを返します
そしてObject.isです。 ( ) は 3 番目の等号に基づいており、-0 と +0 が同じでなくなるように NaN、-0、+0 を特別に処理します ただし、Object.is(NaN, NaN) であることに注意してください。 ) は true を返します シンボル: 新しいデータ型 として、es6 で誕生しました。シンボルは文字通り記号を意味し、何かの一意性を表します。
let myId=Symbol(); let myname=Symbol(); console.log (myname) ===>Symbol() typeof myname ===>symbol console.log(myId===myname) ===>falseは
の基本的なデータ型と同様のシンボルと考えることができます。 string ; 他の型では操作できず、暗黙的に変換することもできません
Symbol() はメモリ内に新しい関数を作成すると考えることができます (したがって、括弧が関数の記号であると言うのは間違いではありません)。 ) ); Symbol 関数はパラメータを渡すこともできます。パラメータはこのシンボルの説明としてのみ使用されます。let myId=Symbol("id"); let myname=Symbol("名字");2 つのシンボルのパラメータが同じであっても、新しいメモリ空間が存在するため、それらは等しくありません。が作成されます。 Symbol の最大の用途は、一意性を確保するためのオブジェクトの
属性 としてです。
let system=Symbol(); let foo={}; foo[system]="windows"; //还可以保证key值为symbol类型的不被 for in遍历出来; //同样还证明了一点:对象的访问方式,要么以 . ;要么以["这里必须是字符串"];js的底层全部是字符串这种实现; console.log(foo);Symbol はフラグを共有することもできます。
let sy=Symbol.for("aaa");Symbol.for(" ") は毎回新しいメモリを作成しません。最大でも 1 つだけです。 aaa ロゴがページに存在しない場合は作成し、存在する場合は前のアドレスを直接参照します。 例:
let cccc=Symbol.for("aaa");次に: console.log(sy===cccc) ); //true; これも理解するのが簡単です。最終的には、aaa の説明を使用した特定のシンボル タイプの一意性が保証されます。さらに興味深いのは、この記事を読んだ後です。情報については、PHP 中国語 Web サイトの他の関連記事にも注目してください。 関連書籍:
ES6 での代入の構造化の詳細説明
以上がES6 オブジェクトの割り当てとシンボルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。