es6 シンボルは基本的なタイプですか?
es6 シンボルは基本タイプに属します。 Symbol は、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!"
シンボル タイプを属性名として使用する場合は、[]
を使用する必要があることがわかります。使用しない場合、変数名と同じ文字列が属性名として表されます。
#ただし、これはプライベート プロパティではありません。指定されたオブジェクトのすべての Symbol プロパティ名を取得できるシンボルは属性名として使用されます。オブジェクトをトラバースするとき、属性は
for...in
、for...of# には表示されません。 ## ループ。 、
Object.keys()、
Object.getOwnPropertyNames()、
JSON.stringify()## では返されません。
Object.getOwnPropertySymbols()メソッドがあります。このメソッドは、メンバーがすべて現在のオブジェクトのプロパティ名として使用される Symbol 値である配列を返します。
同じシンボル値を使用する方法
Symbol.for("bar") === Symbol.for("bar") // true
メソッドを使用すると、同じパラメータで作成された変数の値は同じになります。価値。このメソッドを使用して作成された Symbol 変数はパラメーターをグローバルに登録するためです。 Symbol()
で作成された変数のパラメータはグローバルには登録されません。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>let s1 = Symbol.for("foo");
Symbol.keyFor(s1) // "foo"
let s2 = Symbol("foo");
Symbol.keyFor(s2) // undefined</pre><div class="contentsignin">ログイン後にコピー</div></div>Use Symbol.keyFor()<p>グローバルに登録されたパラメータの名前は変数内にあります。 <code>
Symbol 組み込み属性値
: 他のオブジェクトが 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











非同期はes7です。 async と await は ES7 に新しく追加されたもので、非同期操作のソリューションです。async/await は co モジュールとジェネレーター関数の糖衣構文と言え、より明確なセマンティクスで JS 非同期コードを解決します。名前が示すように、async は「非同期」を意味します。async は関数が非同期であることを宣言するために使用されます。async と await の間には厳密な規則があります。両方を互いに分離することはできず、await は async 関数内でのみ記述できます。

ES6 では、配列オブジェクトの reverse() メソッドを使用して、配列の反転を実現できます。このメソッドは、配列内の要素の順序を逆にして、最後の要素を最初に、最初の要素を最後に配置するために使用されます。構文「array」 。逆行する()"。 reverse() メソッドは元の配列を変更します。変更したくない場合は、拡張演算子 "..." とともに使用する必要があり、構文は "[...array].reverse() 」。

ブラウザの互換性のため。 ES6 は JS の新しい仕様として、多くの新しい構文と API を追加していますが、最新のブラウザーは ES6 の新機能を高度にサポートしていないため、ES6 コードを ES5 コードに変換する必要があります。 WeChat Web 開発者ツールでは、デフォルトで babel が使用され、開発者の ES6 構文コードを 3 つの端末すべてで適切にサポートされる ES5 コードに変換し、開発者がさまざまな環境によって引き起こされる開発上の問題を解決できるようにします。プロジェクト内でのみ設定して確認するだけです。 「ES6~ES5」オプション。

手順: 1. 構文 "newA=new Set(a); newB=new Set(b);" を使用して、2 つの配列をそれぞれセット型に変換します; 2. has() と filter() を使用して差分セットを検索します、構文 " new Set([...newA].filter(x =>!newB.has(x)))" では、差分セット要素がセット コレクションに含まれて返されます。 3. 配列を使用します。 from セットを配列に変換するタイプ、構文は「Array.from(collection)」です。

es5 では、for ステートメントと IndexOf() 関数を使用して配列の重複排除を実現できます。構文 "for(i=0;i<配列長;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}」。 es6 では、スプレッド演算子 Array.from() および Set を使用して重複を削除できます。まず配列を Set オブジェクトに変換して重複を削除してから、スプレッド演算子または Array.from() 関数を使用する必要があります。 Set オブジェクトを配列に変換してグループ化するだけです。

Go 言語は、2009 年に Google によって開発された高速、安全、信頼性の高いプログラミング言語です。 Go 言語の型システムはシンプルかつ明確で、強力に型付けされています。 Go 言語では、基本型にはブール、整数、浮動小数点、複素数、文字列、ポインターなどが含まれます。さらに、Go 言語は、配列、スライス、マップ、チャネル、インターフェイス、構造体などのいくつかの複雑な型も提供します。次にGo言語の基本型と複合型について詳しく紹介していきます。 1. 基本型 ブール型 ブール型値

es6 では、一時的なデッド ゾーンは構文エラーであり、ブロックを閉じたスコープにする let および const コマンドを指します。コード ブロック内では、let/const コマンドを使用して変数が宣言される前に、変数は使用できず、変数が宣言される前は変数の「デッド ゾーン」に属します。これは構文上「一時デッド ゾーン」と呼ばれます。 ES6 では、一時的なデッド ゾーンや let ステートメントや const ステートメントでは変数のプロモーションが発生しないことを規定しています。これは主に実行時エラーを減らし、変数が宣言される前に使用されて予期しない動作が発生するのを防ぐためです。

いいえ、require は CommonJS 仕様のモジュール構文であり、es6 仕様のモジュール構文は import です。 require は実行時にロードされ、import はコンパイル時にロードされます。require はコード内のどこにでも記述できます。import はファイルの先頭にのみ記述でき、条件文や関数スコープでは使用できません。モジュール属性は導入されるだけです。 require を実行した場合、そのためパフォーマンスは比較的低くなりますが、インポート コンパイル中に導入されたモジュールのプロパティのパフォーマンスはわずかに高くなります。
