es6 シンボルは基本的なタイプですか?

青灯夜游
リリース: 2022-03-08 17:00:02
オリジナル
2571 人が閲覧しました

es6 シンボルは基本タイプに属します。 Symbol は、es6 で導入された新しい基本データ型で、一意の値を表します。その機能は、属性名の競合を防ぎ、オブジェクト内の各属性名が一意であることを保証することです。

es6 シンボルは基本的なタイプですか?

このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。

Symbol は基本的なデータ型であり、ES6 で導入された 新しい データ型です。

目的は、属性名の競合を防止するであり、オブジェクト内の各属性名が一意であることを確認することです。

let s1 = Symbol('foo');
let s2 = Symbol('foo');

s1 === s2 // false
ログイン後にコピー

シンボル タイプには、シンボル インスタンスの description を表す文字列パラメータを含めることができます。したがって、同じ説明を持つ Symbol タイプの 2 つのインスタンスは等しくありません。

使用方法

let s = Symbol();

// 第一种写法
let a = {};
a[mySymbol] = 'Hello!';

// 第二种写法
let a = {
  [mySymbol]: 'Hello!'
};

// 第三种写法
let a = {};
Object.defineProperty(a, mySymbol, { value: 'Hello!' });

// 以上写法都得到同样结果
a[mySymbol] // "Hello!"
ログイン後にコピー

シンボル タイプを属性名として使用する場合は、[] を使用する必要があることがわかります。使用しない場合、変数名と同じ文字列が属性名として表されます。

シンボルは属性名として使用されます。オブジェクトをトラバースするとき、属性は for...infor...of# には表示されません。 ## ループ。 、 Object.keys()Object.getOwnPropertyNames()JSON.stringify()## では返されません。

#ただし、これはプライベート プロパティではありません。指定されたオブジェクトのすべての Symbol プロパティ名を取得できる
Object.getOwnPropertySymbols()

メソッドがあります。このメソッドは、メンバーがすべて現在のオブジェクトのプロパティ名として使用される Symbol 値である配列を返します。

同じシンボル値を使用する方法
Symbol.for("bar") === Symbol.for("bar")
// true
ログイン後にコピー

Symbol.for()

メソッドを使用すると、同じパラメータで作成された変数の値は同じになります。価値。このメソッドを使用して作成された Symbol 変数はパラメーターをグローバルに登録するためです。 Symbol() で作成された変数のパラメータはグローバルには登録されません。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">let s1 = Symbol.for(&quot;foo&quot;); Symbol.keyFor(s1) // &quot;foo&quot; let s2 = Symbol(&quot;foo&quot;); Symbol.keyFor(s2) // undefined</pre><div class="contentsignin">ログイン後にコピー</div></div>Use Symbol.keyFor()<p>グローバルに登録されたパラメータの名前は変数内にあります。 <code>Symbol 組み込み属性値

Symbol.hasInstance

: 他のオブジェクトが instanceof 演算子を使用する場合、それらは指定された内部メソッドを使用します。属性名で指定します。 #Symbol.isConcatSpreadable

Symbol.species

Symbol.match

Symbol.replace

Symbol.search

Symbol.split

Symbol .iterator

Symbol.toPrimitive

Symbol.toStringTag

Symbol.unscopables

【関連する推奨事項: JavaScript ビデオ チュートリアル

Web フロントエンド ]

以上がes6 シンボルは基本的なタイプですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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