ESのSymbolデータ型の説明

一个新手
リリース: 2017-09-27 09:56:48
オリジナル
1821 人が閲覧しました


関数

一意の変数を宣言します

2つのシンボルは等しくありません。

let a1 = Symbol();  //不用newlet a2 = Symbol();
console.log(a1===a2); //false
ログイン後にコピー

キー値の競合を防ぐ

let a1=Symbol.for('abc');let obj={
        [a1]:'123',        'abc':345,        'c':456};
console.log('obj',obj);  // {abc: 345, c: 456, Symbol(abc): "123"}
ログイン後にコピー

[a1] は上のシンボルで、そのキー値は 'abc' です。

その下には 'abc' というキー値もありますが、競合はありません。

メソッド

Symbol.for() キー値の検索

このメソッドはキー値をグローバルに検索します。

がある場合、 を返します。 がない場合、

を返します。

キー値を生成します

let a3=Symbol.for('a3'); //声明keylet a4=Symbol.for('a3'); //找到变量a3对应的key值
console.log(a3===a4);    //a3 === a3
ログイン後にコピー
Object.getOwnPropertySymbols() 値の取得

Symbol()の値のみ取得可能、

通常のプロパティの値は取得できません

戻り値:
array

instance

let s5 = Symbol('s5');let s6 = Symbol('s6');let a = {
    [s5]: 'rs5',
    [s6]: 'rs6'}Object.getOwnPropertySymbols(a).forEach(function(item){
    console.log(a[item]);  // rs5  rs6})
ログイン後にコピー

反映します。 ownKeys()はキーと値を取得します

Symbol()と非Symbolのキーと値を取得できます

戻り値:

配列

インスタンス

let s5 = Symbol('s5');let s6 = Symbol('s6');let a = {
    [s5]: 'rs5',
    [s6]: 'rs6'}

Reflect.ownKeys(a).forEach(function(item){
    console.log(item,a[item]); // Symbol(s5) "rs5"  Symbol(s6) "rs6"})
ログイン後にコピー

以上がESのSymbolデータ型の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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