ES6 オブジェクトの割り当てとシンボル

php中世界最好的语言
リリース: 2018-03-10 15:00:26
オリジナル
1839 人が閲覧しました

今回は 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 の変数のスコープと宣言の詳細説明

以上がES6 オブジェクトの割り当てとシンボルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート