シンボルデータタイプjs 言語には、ES6 より前に 6 つのデータ型がありました。 ES6 では新たに symbol データ型が提案されているため、symbol は js の 7 番目のデータ型となり、一意の値を表します。文字列に似たデータ型です。 目的は、属性名の競合を防ぎ、オブジェクト内の各属性名が一意であることを保証することです。 s1 = シンボル('foo')とします。 s2 = シンボル('foo')とします。 s1 === s2 // 偽 Symbol 型には、Symbol インスタンスの説明を表す文字列パラメータを設定できます。したがって、同じ説明を持つ 2 つのシンボル タイプのインスタンスは等しくありません。 シンボルが表示される理由ES5 のオブジェクト プロパティ名はすべて文字列であるため、プロパティ名の競合が簡単に発生する可能性があります。たとえば、他の人が提供したオブジェクトを使用しているが、このオブジェクトに新しいメソッドを追加したい場合 (ミックスイン モード)、新しいメソッドの名前が既存のメソッドと競合する可能性があります。各属性名が一意であることを保証し、属性名の競合が発生しないようにするメカニズムがあれば便利です。これがES6でSymbolが導入された理由です シンボルの特徴
//シンボルを作成 s = シンボル() とします。 console.log(s, typeof s); // 同じ名前のシンボルを 2 つ作成してみます。let s2 = Symbol(' 辣鸡rb'); let s3 = Symbol(' 辣鸡rb'); console.log(s2 === s3); //偽 //Symbol.forを使用して同じシンボルを作成します let s4 = Symbol.for('スパイシーチキンrb'); let s5 = Symbol.for('スパイシーチキンrb'); console.log(s4 === s5); //true //他のデータでは操作できません let result = s + 100; //エラー、 記事の最後では、jsのデータ型を復習しましょう。 シリコンバレーの記憶術 // USONB =>あなたはとても.niubilityです あなたはとても素晴らしいです // u=>undefined // s=>文字列シンボル // 0=>オブジェクト // n=>null 数 // b=>ブール値 考えた後、もっと書くことにしました。 シンボルの応用rbオブジェクトにupメソッドとdownメソッドを追加する方法1 rb = {とする 名前:「日本の戦争犯罪者」 年齢: 500, }; // シンボルによる処理 // 2つのメソッドを含むオブジェクトを宣言します。メソッドは symbol() で記述されます。let methods = { 上: シンボル(), 下: シンボル() }; // メソッドを追加 rb[methods.up] = function () { console.log('人について話してごめんなさい'); }; rb[methods.down] = 関数(){ console.log('この獣は恥知らずで、中国国民に許しを求めている'); }; コンソールにログ出力します。 方法2 rb オブジェクトに sb メソッドと dsb メソッドを追加します。 rb = {とする 名前:「日本の戦争犯罪者」 年齢: 500, [シンボル('sb')]: 関数() { console.log('私は日本のアニメが好きです'); }, [シンボル('dsb')]: 関数() { console.log('しかし、中国で彼らが犯した犯罪に対する私の憎しみは止まりません'); }, }; コンソールにログ出力します。 シンボル組み込みプロパティ値
要約するES6 のシンボルデータ型に関するこの記事はこれで終わりです。ES6 のシンボルデータ型についてさらに詳しく知りたい場合は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: ストアド プロシージャでエラー状態をトリガーする mysql ストアド プロシージャの分析例 (SIGNAL および RESIGNAL ステートメント)
>>: Docker がポート 2375 を公開し、サーバー攻撃を引き起こす問題と解決策
この記事では、ログインスライダー検証を実装するためのJavaScriptの具体的なコードを参考までに...
テーマ今日は、CSS3 を使用して円形スクロール プログレス バー アニメーションを作成する方法を説...
目次序文レンダリングの役割レンダリング機能の説明レンダリングとテンプレートの違いレンダリング例要約す...
今日午後ずっと私を悩ませたバグを記録する半月前から始めましょう。それから.................
この記事には、細かい点は一切なく、カラーマッチングのテクニックをシェアするだけです。とてもシンプルで...
1. はじめにWHMCS は、ユーザー管理、請求書の支払い、ヘルプ サービスなど、オンライン ビジネ...
目次sakilaをインストールするインデックススキャンソートテーブル構造インデックススキャンをソート...
MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...
目次コード:補充:要約する要件: 左のツリーと右のテーブル。組織ツリーでノードを選択した後、詳細ペー...
目次1. プロセス2. コアアーキテクチャ2.1 サーバー層の基本コンポーネントの紹介3. ステート...
私は現在、Xiao Nian Gao に似たビデオおよびツール アプリを開発しています。ユーザーが作...
問題の説明最近、MySQL5.6.21サーバーがありました。アプリケーションがリリースされた後、同時...
私はApacheを使ったことがありません。仕事を始めてからはずっとnginxを使っていました(運用保...
目次1. パノラマII. 背景1. 反応: プロフェッショナル2. ビュー: 凡例3. 技術的な思考...
今日も Watch アプリのデザインに関する話です。私はケーススタディが大好きなので、同じトピックを...