A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Symbol/Symbol below:

Symbol() コンストラクター - JavaScript | MDN

Symbol() コンストラクター

Baseline Widely available

Symbol() 関数は、シンボル型のプリミティブ値を返します。

試してみましょう
const symbol1 = Symbol();
const symbol2 = Symbol(42);
const symbol3 = Symbol("foo");

console.log(typeof symbol1);
// Expected output: "symbol"

console.log(symbol2 === 42);
// Expected output: false

console.log(symbol3.toString());
// Expected output: "Symbol(foo)"

console.log(Symbol("foo") === Symbol("foo"));
// Expected output: false
構文
Symbol()
Symbol(description)

メモ: Symbol() は new 付きで呼び出すことができません。new を付けて構築しようとすると、TypeError が発生します。

引数
description 省略可

文字列。デバッグには使用できるこのシンボルの説明ですが、シンボル自体にはアクセスできません。

例 シンボルの作成

新しいプリミティブのシンボルを作成するには、解説にあるように Symbol() を任意の文字列とともに書きます。

const sym1 = Symbol();
const sym2 = Symbol("foo");
const sym3 = Symbol("foo");

上記のコードは 3 つの新しいシンボルを生成します。なお、Symbol("foo") は "foo" という文字列をシンボルに変換するわけではないことに注意してください。毎回新しいシンボルを生成します。

Symbol("foo") === Symbol("foo"); // false
new Symbol()

以下のように new 演算子を伴う構文では、 TypeError が発生します。

const sym = new Symbol(); // TypeError

一般的に他のプリミティブデータ型は明示的なラッパーオブジェクトを作成することは可能ですが(例えば、 new Boolean, new String, new Number)、新しいシンボル値の代わりに明示的に Symbol ラッパーオブジェクトを作成することはできません。

本当に Symbol のラッパーオブジェクトを生成したい場合は、 Object() 関数を使用することができます。

const sym = Symbol("foo");
const symObj = Object(sym);
typeof sym; // "symbol"
typeof symObj; // "object"
仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4