Symbol.prototype.toString()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 9ì.
Symbol ê°ì toString() ë©ìëë ì§ì ë ì¬ë³¼ ê°ì ëíë´ë 문ìì´ì ë°íí©ëë¤.
ìëí´ ë³´ê¸°
console.log(Symbol("desc").toString());
// Expected output: "Symbol(desc)"
console.log(Symbol.iterator.toString());
// Expected output: "Symbol(Symbol.iterator)
console.log(Symbol.for("foo").toString());
// Expected output: "Symbol(foo)"
// console.log(Symbol('foo') + 'bar');
// Expected output: Error: Can't convert symbol to string
구문
toString()
ë°í ê°
ì§ì ë ì¬ë³¼ ê°ì ëíë´ë 문ìì´.
ì¤ëª
Symbol ê°ì²´ë Objectì toString ë©ìë를 ì¬ì ìíë©°,
Object.prototype.toString()ì ììíì§ ììµëë¤. Symbol ê°ì ê²½ì° toString ë©ìëë "Symbol(description)" íìì ì¤ëª
문ìì´ì ë°ííë©°, ì¬ê¸°ì descriptionì ì¬ë³¼ì descriptionì
ëë¤.
toString() ë©ìëë this ê°ì´ Symbol ìì ê° ëë ëí¼ ê°ì²´ì¬ì¼ í©ëë¤. ì´ ì¸ì this ê°ì ëí´ìë ì¬ë³¼ ê°ì¼ë¡ ê°ì ë³ííì§ ìê³ TypeError를 ë°ììíµëë¤.
Symbolìë [Symbol.toPrimitive]() ë©ìëê° ì기 ë문ì Symbol ê°ì²´ë¥¼ 문ìì´ë¡ ê°ì ë³íí ë ì´ ë©ìëê° íì toString()ë³´ë¤ ì°ì í©ëë¤.
ê·¸ë¬ë Symbol.prototype[Symbol.toPrimitive]()ë ì¬ë³¼ ìì ê°ì ë°ííê³ ì¬ë³¼ ìì ê°ì 문ìì´ë¡ ììì ì¼ë¡ ë³íë ë TypeErrorê° ë°ìí기 ë문ì ì¸ì´ìì toString() ë©ìëë ì ë ììì ì¼ë¡ í¸ì¶ëì§ ììµëë¤.
ì¬ë³¼ì 문ìì´ííë ¤ë©´ í´ë¹ ì¬ë³¼ì toString() ë©ìë를 ëª
ìì ì¼ë¡ í¸ì¶íê±°ë String() í¨ì를 ì¬ì©í´ì¼ í©ëë¤.
ìì
>toString() ì¬ì©í기
Symbol("desc").toString(); // "Symbol(desc)"
// ì ìë ¤ì§ ì¬ë³¼
Symbol.iterator.toString(); // "Symbol(Symbol.iterator)"
// ê¸ë¡ë² ì¬ë³¼
Symbol.for("foo").toString(); // "Symbol(foo)"
ììì toString() í¸ì¶
JavaScriptê° ì¬ë³¼ ëí¼ ê°ì²´ìì [Symbol.toPrimitive]() ëì toString()ì ììì ì¼ë¡ í¸ì¶íëë¡ íë ì ì¼í ë°©ë²ì Symbol.toPrimitive ë©ìë를 먼ì ìì ì²ë¦¬íë ë°©ë² ë¿ ì
ëë¤.
ê²½ê³ : ì¤ì ë¡ ì´ ìì ì ìííì§ ë§ì¸ì. ì íí 무ìì íê³ ìëì§ ìì§ ëª»íë©´ 기본 ì ê³µ ê°ì²´ë¥¼ ë³ê²½íì§ ë§ì¸ì.
delete Symbol.prototype[Symbol.toPrimitive];
console.log(`${Object(Symbol("foo"))}`); // "Symbol(foo)"
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-symbol.prototype.tostring> |