[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Symbol [Back]  [Original]

Symbol - JavaScript | MDN

MDN Web Docs

View in English Always switch to English

Symbol

Baseline *

20159

*

Symbol

Symbol() Symbol.for("key") "key" Symbol Symbol.for("key") Symbol Symbol Symbol Symbol Symbol

Symbol()

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

3 Symbol("foo") "foo"

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

new TypeError

js
const sym = new Symbol(); // TypeError

Symbol new Booleannew Stringnew Number

Symbol Object()

js
const sym = Symbol("foo");
typeof sym; // "symbol"
const symObj = Object(sym);
typeof symObj; // "object"

2 WeakMapWeakSetWeakRefFinalizationRegistry

Symbol() Symbol.for() Symbol.keyFor()

JavaScript for() keyFor() JavaScript

Symbol.for(tokenString) Symbol.keyFor(symbolValue) true

js
Symbol.keyFor(Symbol.for("tokenString")) === "tokenString"; // true

WeakMap, WeakSet, WeakRef, FinalizationRegistry

Symbol JavaScript Symbol.hasInstance instanceof

JavaScript JSON.stringify toJSON() String toString() valueOf()

: @@<> Symbol.hasInstance @@hasInstance Array.prototype[Symbol.iterator]() Array.prototype[Symbol.iterator]()

Array.prototype WeakMapWeakSetWeakRefFinalizationRegistry

Object.getOwnPropertySymbols()

Symbol()

new

Symbol.hasInstance ...

Symbol.asyncDispose

await using

Symbol.asyncIterator

(AsyncIterator) for await...of

Symbol.dispose

using

Symbol.hasInstance

instanceof

Symbol.isConcatSpreadable

Array.prototype.concat()

Symbol.iterator

for...of

Symbol.match

String.prototype.match()

Symbol.matchAll

String.prototype.matchAll()

Symbol.replace

String.prototype.replace()

Symbol.search

String.prototype.search()

Symbol.species

Symbol.split

String.prototype.split()

Symbol.toPrimitive

Symbol.toStringTag

Object.prototype.toString()

Symbol.unscopables

with

Symbol.for()

key key

Symbol.keyFor()

Symbol.prototype Symbol

Symbol.prototype.constructor

Symbol Symbol

Symbol.prototype.description

Symbol.prototype[Symbol.toStringTag]

[Symbol.toStringTag] "Symbol" Object.prototype.toString() Symbol toString() thisArg Object.prototype.toString.call()

Symbol.prototype.toString()

Object.prototype.toString()

Symbol.prototype.valueOf()

Object.prototype.valueOf()

Symbol.prototype[Symbol.toPrimitive]()

typeof

typeof

js
typeof Symbol() === "symbol";
typeof Symbol("foo") === "symbol";
typeof Symbol.iterator === "symbol";

for...in

for...in Object.getOwnPropertyNames() Object.getOwnPropertySymbols()

js
const obj = {};

obj[Symbol("a")] = "a";
obj[Symbol.for("b")] = "b";
obj["c"] = "c";
obj.d = "d";

for (const i in obj) {
  console.log(i);
}
// "c" "d"

JSON.stringify()

JSON.stringify()

js
JSON.stringify({ [Symbol("foo")]: "foo" });
// '{}'

JSON.stringify()

Symbol

Symbol

js
const sym = Symbol("foo");
const obj = { [sym]: 1 };
obj[sym]; // 1
obj[Object(sym)]; // still 1

ECMAScript 2027 LanguageSpecification
# sec-symbol-objects


Web Proxy Viewer  |  New URL  |  Original Page