| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Symbol | [Back] [Original] |
Get to know MDN better
Symbol() Symbol.for("key") "key" Symbol Symbol.for("key") Symbol Symbol Symbol Symbol Symbol
Symbol()
const sym1 = Symbol();
const sym2 = Symbol("foo");
const sym3 = Symbol("foo");
3 Symbol("foo") "foo"
Symbol("foo") === Symbol("foo"); // false
const sym = new Symbol(); // TypeError
Symbol new Booleannew Stringnew Number
Symbol Object()
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
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.asyncDisposeSymbol.asyncIterator (AsyncIterator) for await...of
Symbol.disposeSymbol.hasInstanceSymbol.isConcatSpreadableSymbol.iteratorSymbol.matchSymbol.matchAllSymbol.replaceSymbol.searchSymbol.speciesSymbol.splitSymbol.toPrimitiveSymbol.toStringTagSymbol.unscopablesSymbol.for() key key
Symbol.keyFor() Symbol.prototype Symbol
Symbol.prototype.constructorSymbol Symbol
Symbol.prototype.descriptionSymbol.prototype[Symbol.toStringTag][Symbol.toStringTag] "Symbol" Object.prototype.toString() Symbol toString() thisArg Object.prototype.toString.call()
typeof Symbol() === "symbol";
typeof Symbol("foo") === "symbol";
typeof Symbol.iterator === "symbol";
TypeError
: +sym sym | 0Object(sym) == sym true Symbol("foo") + "bar" TypeError String(sym) Symbol.prototype.toString() new String(sym) for...in Object.getOwnPropertyNames() Object.getOwnPropertySymbols()
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({ [Symbol("foo")]: "foo" });
// '{}'
Symbol
const sym = Symbol("foo");
const obj = { [sym]: 1 };
obj[sym]; // 1
obj[Object(sym)]; // still 1
| ECMAScript 2027 LanguageSpecification # sec-symbol-objects |
Symbol (core-js)typeof| Web Proxy Viewer | New URL | Original Page |